作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 Junit 4 库运行一些简单的测试,并使用 @Before
、@After
和 @BeforeClass
注释。但问题是 @Before
和 @After
在 @BeforeClass
之前执行。这是为什么?
代码:
import junit.runner.Version;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class TestClass2
{
@BeforeClass
public static void before() throws Exception
{
System.out.println("Before class");
}
@Before
public void setUp() throws Exception
{
System.out.println("Before");
}
@After
public void tearDown() throws Exception
{
System.out.println("After");
}
@Test
public void name() throws Exception
{
System.out.println("Test");
System.out.println("JUnit version is: " + Version.id());
}
}
输出:
Before
Test
JUnit version is: 4.12
After
Before class
Process finished with exit code 0
最佳答案
确保将 @BeforeClass
方法声明为 static,并使用 JUnit 的注解(而非 TestNG)。完整代码示例:
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* @author sainnr <p/>27.12.2017.
*/
public class TestClass {
@BeforeClass
public static void before() throws Exception {
System.out.println("Before class");
}
@Before
public void setUp() throws Exception {
System.out.println("Before");
}
@After
public void tearDown() throws Exception {
System.out.println("After");
}
@Test
public void name() throws Exception {
System.out.println("Test");
}
}
输出:
Before class
Before
Test
After
根据 JUnit 文档:http://junit.sourceforge.net/javadoc/org/junit/BeforeClass.html .
关于java - 在 junit 4 @Beforeclass @Before 和 @After 测试用例 : wrong order of execution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47988401/
我是一名优秀的程序员,十分优秀!