java - Junit 测试不能一次通过所有测试用例

标签 java junit

我有一个很奇怪的问题,当我尝试使用多个测试用例运行 JUnit 测试时,它只会通过第一个测试用例并显示 IndexOut of Bound 错误

public class ABCTest {
    @Test
    public void basicTest1(){...}
    @Test
    public void basicTest2(){...}
    ...

但是如果我推荐剩下的测试用例,一个一个测试它们,它会全部通过。

public class ABCTest {    
    @Test
    public void basicTest1(){...}
    //@Test
    //public void basicTest2(){...}
    //...

最佳答案

由于您没有提供完整的测试用例和实现类,我不得不做一些假设。

很可能您正在通过测试用例改变被测对象的状态。

通常您会尝试为每个单元测试获取一个干净的测试夹具。这通过使用带有 @Before 注释的方法来工作,该方法创建被测类的新实例。 (这在旧版本的 junit 中称为“setUp()”。)

这确保了测试方法的执行顺序和执行次数无关紧要,并且每个方法都是独立工作的。

关于java - Junit 测试不能一次通过所有测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19430888/

相关文章:

java - 为什么我的 Dijkstra 代码会失败?

java - 排序操作以最大化 double

java - Eclipse 代码重构 - Junits

android - 从 J 单元测试用例调用时,getApplicationContext() 返回 null

java - 类型 类型不能是 Do 的超接口(interface); super 接口(interface)必须是接口(interface)错误

java - JPA @version - 可以用来计算表条目的版本

java - 电子邮件地址中的特殊字符抛出异常

AndroidJUnit4 和参数化测试

java - Java 如何为方法生成签名?

java - Spring Aspect Advice @Test 方法