unittest を使用すると、2 つのシーケンスの違いをすべて 1 つのテスト ケースで表示できます。
seq1 = range(1, 11)
seq2 = (fn(j) for j in seq1)
assertSequenceEqual(seq1, seq2)
それが十分に柔軟でない場合、unittest を使用して複数のテストを生成することは可能ですが、少し注意が必要です。
def fn(i): ...
output = ...
class TestSequence(unittest.TestCase):
pass
for i in range(1,11):
testmethodname = 'test_fn_{0}'.format(i)
testmethod = lambda self: self.assertEqual(fn(i), output[i])
setattr(TestSequence, testmethodname, testmethod)
Nose は、テスト ジェネレーターを使用して上記の作業を容易にします。
import nose.tools
def test_fn():
for i in range(1, 11):
yield nose.tools.assert_equals, output[i], fn(i)
同様の質問: