java - 在 IDEA 中运行 JUnit 方法的顺序错误

标签 java unit-testing junit4

我对 Idea 14 和 JUnit 有疑问。我无法以正确的顺序运行 @BeforeClass 和 @AfterClass 方法(在所有测试之前和所有测试之后)。每次的顺序都不一样。我试图重新安装 IDEA,删除所有设置,但没有任何效果。请帮忙。这是我的测试代码示例:

package com.rent.test;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import static org.junit.Assert.*;
import org.junit.Test;

public class testnewTest {
    static int num;
    static int num1;

    @BeforeClass
    public static void OnceExecutedBeforeAll() {
        System.out.println("@BeforeClass: onceExecutedBeforeAll");
        num = 15;
        num1 = 16;
    }

    @AfterClass
    public static void after() throws Exception {
        System.out.println("End");
    }

    @Test
    public void testLogin() throws Exception {
        System.out.println("test");
        assertEquals(15, num);
    }

    @Test
    public void testGetOrdersDate() throws Exception {
        System.out.println("test2");
        assertEquals(16, num1);
    }
}

这是输出:

 test2
 @BeforeClass: onceExecutedBeforeAll
 test
 End

最佳答案

您可能会观察到终端中的输出并不总是同步的。测试自身正在以正确的顺序运行。

如果它们不是,那么您将在 test2 中失败,因为看起来您的 @BeforeClass 方法之后被触发了.

关于java - 在 IDEA 中运行 JUnit 方法的顺序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32614698/

相关文章:

java - 递归条件和基本情况确认

android - 如何调整 Robolectric 测试的屏幕密度?

java - SpringJUnit4ClassRunner - 静态访问EntityManager(Factory)

java - 在 Java 上获取因子总量

java - java.util.Scanner 包中的 nextLine 方法是否从用户那里获取字符串?

java - 在 OpenShift 平台中使用 MySql 的 Spring Webapp

c++ - 模拟 - 方法和工具

python - 如何测试 Python 函数是否引发异常?

javascript - express : I don't understand how to use sinon

java - 是否可以在 JUnit 4 中排除多个类别?