java - 测试Java方法输出的 "right"方式是什么?

标签 java unit-testing testing junit

在 Python 中,我经常有看起来像这样的测试:

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

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

谢谢!

先发制人的 react :我意识到我可以做类似的事情:

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

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

最佳答案

同样的事情。

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

当然不如 python 漂亮,但很少有东西漂亮。

您可能还想查看 JUnit Theories , future 的功能...

关于java - 测试Java方法输出的 "right"方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/663005/

相关文章:

java - 无法运行查询java mysql数据库

java - Java Swing 的多重问题

java - 线程 "Thread-0"java.lang.NoClassDefFoundError : Server$WorkerThread 中出现异常

c# - 单元测试如何确认已抛出异常

java - 在线程中运行的信号量任务

c# - 让单元测试循环运行是不好的做法吗?

c# - protected 方法应该进行单元测试吗?如何避免重复测试?

testing - 什么是分支机构覆盖率?

unit-testing - 测试 AWS 现货实例供应

.net - 当业务规则是属性可访问性时,如何测试它?