Dav*_*ver 5 java testing junit unit-testing
在Python中,我经常会看到类似这样的测试:
tests = [
(2, 4),
(3, 9),
(10, 100),
]
for (input, expected_output) in tests:
assert f(input) == expected_output
Run Code Online (Sandbox Code Playgroud)
使用JUnit在Java中编写这样的测试(其中指定了一组测试用例,然后循环运行每个测试用例)的"正确"方法是什么?
谢谢!
抢先回应:我意识到我可以这样做:
assertEquals(4, f(2))
assertEquals(9, f(3))
....
Run Code Online (Sandbox Code Playgroud)
但是......我希望有更好的方法.
Nic*_*eys 11
一样.
int[][] tests = {
{2, 4},
{3, 9},
{10, 100}
};
for (int[] test : tests) {
assertEquals(test[1], f(test[0]));
}
Run Code Online (Sandbox Code Playgroud)
当然不像python那么漂亮,但很少有东西.
您可能还想研究JUnit Theories,这是未来的一项功能......
正确的方法是编写单独的断言语句,即使您不喜欢它.
它避免了不必要的复杂化,当它失败时,有时更容易看到哪个值失败(无需启动调试器).
但是,如果您自动生成测试数据,则会有不同的故事.
| 归档时间: |
|
| 查看次数: |
389 次 |
| 最近记录: |