使用C#和NUnit,存在TestCase attribute和T estCaseSource attribute,两者都允许对单元测试进行参数化,以便可以使用不同的输入多次使用相同的“测试” 。这样可以减少代码重复,同时保持可读性。
Python有类似的东西吗?
编辑: @Dunes提到了subtests,我应该把它作为这个问题的一部分。不幸的是,它只是一个3.4功能,我希望支持2.7和3.4。
答案 0 :(得分:1)
答案是subTest
。但是,这仅适用于Python 3.4。
但是有unittest2
。它提供了Python 3.4(包括subTest
)中unittest的最新功能的后端。 unittest2
经过测试,可在Python 2.6,2.7,3.2,3.3,3.4和pypy上运行。
答案 1 :(得分:0)
有几个库可以让你这样做。例如,py.test示例如下:
import pytest
@pytest.mark.parametrize("test_input,expected", [
("3+5", 8),
("2+4", 6),
("6*9", 42),
])
def test_eval(test_input, expected):
assert eval(test_input) == expected