当前位置:  开发笔记 > 编程语言 > 正文

测试Java方法输出的"正确"方法是什么?

如何解决《测试Java方法输出的"正确"方法是什么?》经验,为你挑选了2个好方法。

在Python中,我经常会看到类似这样的测试:

tests = [
    (2, 4),
    (3, 9),
    (10, 100),
]
for (input, expected_output) in tests:
    assert f(input) == expected_output

使用JUnit在Java中编写这样的测试(其中指定了一组测试用例,然后循环运行每个测试用例)的"正确"方法是什么?

谢谢!

抢先回应:我意识到我可以这样做:

assertEquals(4, f(2))
assertEquals(9, f(3))
....

但是......我希望有更好的方法.



1> Nick Veys..:

一样.

    int[][] tests = {
            {2, 4},
            {3, 9},
            {10, 100}
    };
    for (int[] test : tests) {
        assertEquals(test[1], f(test[0]));
    }

当然不像python那么漂亮,但很少有东西.

您可能还想研究JUnit Theories,这是未来的一项功能......



2> starblue..:

正确的方法是编写单独的断言语句,即使您不喜欢它.

它避免了不必要的复杂化,当它失败时,有时更容易看到哪个值失败(无需启动调试器).

但是,如果您自动生成测试数据,则会有不同的故事.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有