java - 在 JUnit 测试类中使用随机值

标签 java unit-testing random junit

<分区>

在 JUnit 中使用随机值创建测试对象是一个好习惯吗? 像这样:

public class MonomialTest {

    private static final Random RANDOM = new Random();

    private Monomial monomial;
    private float coefficient;
    private int exponent;

    @Before
    public void setUp() throws Exception {
        coefficient = RANDOM.nextFloat();
        exponent = RANDOM.nextInt();
        monomial = new Monomial(coefficient, exponent);
    }

    @Test
    ...
    ...
    ...

}

还是应该使用固定值?

最佳答案

单元测试应该是确定性的,以便在测试失败时简化故障查找。因此,它们不应包含随机值。

检查某些属性是否适用于任意值(您的测试有效地这样做)确实有意义:为此您可以使用基于属性的测试框架,例如 junit-quickcheck它将为您生成随机数据。

关于java - 在 JUnit 测试类中使用随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34963748/

相关文章:

java - 使用 SDL 将现有的 Lunar Lander 程序从 C 转换到 Android 手机

java - 为什么不能将 Intent Service 声明为私有(private)包?

java - 单元测试android : How to return function not to be null when calls another function return and use

c++ - C++11 PRNG 能否用于产生可重复的结果?

python - 对象深入以获得所需的数组,numpy 随机选择

java - 如果在打开资源后引发运行时异常 - 程序会关闭该资源吗?

unit-testing - Angularjs:angular-phonecat 教程应用程序第一次单元测试失败

asp.net-mvc - 单元测试 aspx 页面是否正确路由?

algorithm - 调用 random() 方法时需要更改随机种子吗?

java - 间接插入命名表?