我有一个示例JUnit
测试用例,但是我不确定它是如何开始执行的,因为它不包含main或任何运行类功能。任何人都可以分享JUnit
测试用例如何执行没有主要功能?
代码是:
import static org.junit.Assert.assertEquals;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
public class testJUnit {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println("Before Class");
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
System.out.println("Tear Down After Class");
}
@Before
public void setUp() throws Exception {
System.out.println("Setup");
}
@After
public void tearDown() throws Exception {
System.out.println("Tear Down");
}
@Test
public void test() {
int a = 1;
assertEquals("Testing...", 1, a);
}
@Ignore
@Test
public void test1() {
int a = 156;
assertEquals("Testing...", 156, a);
}
}
答案 0 :(得分:2)
当您运行 JUnit测试时,您实际上正在执行org.junit.runner.JUnitCore
并提供完全限定的类名作为参数。
您可能正在使用IDE,如Eclipse或Netbeans,它们可以为您处理所有逻辑。有关此主题,请参阅@Matthew Farwell answer。
答案 1 :(得分:2)
当从Eclipse运行JUnit测试时,Eclipse运行另一个JVM,它有自己的主类(RemoteTestRunner如果你感兴趣的话)。这与JUnitCore完全相同,但是对于Eclipse的特定更改 - 它需要将结果传递回Eclipse。
有关详细信息,请参阅我对How does Eclipse actually run Junit tests?
的回答答案 2 :(得分:0)
该类不需要main方法。 jUnit包含一个主要的执行方法,在某些时候,jUnit会创建一个测试类的实例。
答案 3 :(得分:0)
它由框架本身处理。执行按@Before,@ Test&的顺序执行@After ..