如何在 Python 2.7 中编写如下测试用例?我没有使用 Pytest/Python3 的选项。
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
tests = [
('foo', 'FOO'),
('too', 'TOO'),
('poo', 'POO'),
]
for value, expected in tests:
with self.subTest(value=value):
self.assertEqual(value.upper(), expected)
if __name__ == '__main__':
unittest.main()
总之,我正在寻找 Python 2.7 中“Pytest 中的参数化夹具”和“unittest 的子测试功能”的替代品。
我可以在 Python 2.7 中执行以下操作,但第一个失败的断言将退出测试。由于我的测试用例中只有一种方法,因此只有一个测试运行 - 尽管一个测试评估了许多断言。
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
self.assertEqual('too'.upper(), 'TOO')
self.assertEqual('poo'.upper(), 'POO')
if __name__ == '__main__':
unittest.main()
如果我想分别测试每个断言,我将不得不将每个断言放在自己的方法中,这会很麻烦。