Возможный дубликат:
Как создать динамические (параметризованные) модульные тесты в python?
У меня есть функция для проверки, under_test и набор ожидаемых пар ввода/вывода:
[
(2, 332),
(234, 99213),
(9, 3),
# ...
]
Я хотел бы, чтобы каждая из этих пар ввода/вывода тестировалась в своем собственном методе test_*. Возможно ли это?
Это то, что я хочу, но заставляя каждую пару вход/выход в один тест:
class TestPreReqs(unittest.TestCase):
    def setUp(self):
        self.expected_pairs = [(23, 55), (4, 32)]
    def test_expected(self):
        for exp in self.expected_pairs:
            self.assertEqual(under_test(exp[0]), exp[1])
if __name__ == '__main__':
    unittest.main()
(Кроме того, действительно ли я хочу поставить это определение self.expected_pairs в setUp?)
ОБНОВЛЕНИЕ: Попытка doublep:
class TestPreReqs(unittest.TestCase):
    def setUp(self):
        expected_pairs = [
                          (2, 3),
                          (42, 11),
                          (3, None),
                          (31, 99),
                         ]
        for k, pair in expected_pairs:
            setattr(TestPreReqs, 'test_expected_%d' % k, create_test(pair))
    def create_test (pair):
        def do_test_expected(self):
            self.assertEqual(get_pre_reqs(pair[0]), pair[1])
        return do_test_expected
if __name__ == '__main__':
    unittest.main()   
Это не работает. Выполняются 0 тестов. Я неправильно применил пример?
