擅长:python、mysql、java
<p>您还可以应用类<code>parametrize</code>,以便将相同的数据发送到类中的所有测试方法。</p>
<p>首先,创建一个列表<code>plasmas</code>,其中包含要通过每个测试的等离子体元素。其次,使用decorator<code>@pytest.mark.parametrize</code>,并将<code>plasmas</code>传递给它。</p>
<pre><code>plasmas = [plasma.LTEPlasma.from_abundance(t, {'Si':1.0}, 1e-13, atom_data, 10*86400) for t in range(2000, 20001, 1000)]
@pytest.mark.parametrize('plasma', plasmas)
class TestNormalLTEPlasma:
def test_beta_rad(self, plasma):
assert plasma.beta_rad == 1 / (10000 * constants.k_B.cgs.value)
def test_t_electron(self, plasma):
assert plasma.t_electron == 0.9 * plasma.t_rad
def test_saha_calculation_method(self, plasma):
assert plasma.calculate_saha == plasma.calculate_saha_lte
</code></pre>