JUnit – 执行过程
云少八、JUnit – 执行过程
本教程阐明了 JUnit 中的方法执行过程,即哪一个方法首先被调用,哪一个方法在一个方法之后调用。以下为 JUnit 测试方法的 API,并且会用例子来说明。
在目录 C:\ > JUNIT_WORKSPACE 创建一个 java 类文件命名为 JunitAnnotation.java 来测试注释程序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| 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 ExecutionProcedureJunit {
@BeforeClass public static void beforeClass() { System.out.println("in before class"); }
@AfterClass public static void afterClass() { System.out.println("in after class"); }
@Before public void before() { System.out.println("in before"); }
@After public void after() { System.out.println("in after"); }
@Test public void testCase1() { System.out.println("in test case 1"); }
@Test public void testCase2() { System.out.println("in test case 2"); } }
|
接下来,让我们在目录 C:\ > JUNIT_WORKSPACE 中创建一个 java 类文件 TestRunner.java 来执行注释程序。
1 2 3 4 5 6 7 8 9 10 11 12 13
| import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure;
public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(ExecutionProcedureJunit.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
|
使用 javac 命令来编译 Test case 和 Test Runner 类。
1
| C:\JUNIT_WORKSPACE>javac ExecutionProcedureJunit.java TestRunner.java
|
现在运行 Test Runner 它会自动运行定义在 Test Case 类中的测试样例。
1
| C:\JUNIT_WORKSPACE>java TestRunner
|
验证输出
1 2 3 4 5 6 7 8
| in before class in before in test case 1 in after in before in test case 2 in after in after class
|
观察以上的输出,这是 JUnite 执行过程:
- beforeClass() 方法首先执行,并且只执行一次。
- afterClass() 方法最后执行,并且只执行一次。
- before() 方法针对每一个测试用例执行,但是是在执行测试用例之前。
- after() 方法针对每一个测试用例执行,但是是在执行测试用例之后。
- 在 before() 方法和 after() 方法之间,执行每一个测试用例。