<p><a href="https://pypi.python.org/pypi/testscenarios/" rel="nofollow">^{<cd1>} library</a>被设计为采用您编写的测试方法和一些数据场景,为(test method×scenario)的每个组合生成单独的测试用例。在</p>
<p>例如:</p>
<pre class="lang-python prettyprint-override"><code>import unittest
import testscenarios
from .. import system_under_test
class foo_TestCase(testscenarios.WithScenarios, unittest.TestCase):
""" Test cases for `foo` function. """
scenarios = [
('purple': {
'wibble': "purple",
'expected_count': 2,
'expected_output': "Purple",
}),
('orange': {
'wibble': "orange",
'expected_count': 3,
'expected_output': "Orange",
}),
('red': {
'wibble': "red",
'expected_count': 1,
'expected_output': "Red",
}),
]
def test_has_expected_vowel_count(self):
""" Should give the expected count of vowels. """
vowel_count = system_under_test.foo(self.wibble)
self.assertEqual(self.expected_count, vowel_count)
def test_sets_expected_output(self):
""" Should set the output to the expected value. """
system_under_test.foo(self.wibble)
self.assertEqual(self.expected_output, system_under_test.output)
</code></pre>
<p>当测试发现发生时,<code>foo_TestCase</code>类将为测试运行程序生成6个测试。它们的名称将用方案名称注释,因此生成的测试报告区分每个特定的测试用例:</p>
^{pr2}$
<p>如果您需要的话,可以使用更多的灵活性—请参阅<code>testscenarios</code>文档—但是上面的内容演示了我在大多数情况下是如何使用它的。在</p>