JUnit - 执行过程

  • 简述

    本章解释了 JUnit 中方法的执行过程,它定义了调用方法的顺序。下面举例讨论JUnit测试API方法的执行过程。
    在 C:\>JUNIT_WORKSPACE 中创建一个名为 ExecutionProcedureJunit.java 的 java 类文件来测试注解。
    
    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 {
         
       //execute only once, in the starting 
       @BeforeClass
       public static void beforeClass() {
          System.out.println("in before class");
       }
       //execute only once, in the end
       @AfterClass
       public static void  afterClass() {
          System.out.println("in after class");
       }
       //execute for each test, before executing test
       @Before
       public void before() {
          System.out.println("in before");
       }
         
       //execute for each test, after executing test
       @After
       public void after() {
          System.out.println("in after");
       }
         
       //test case 1
       @Test
       public void testCase1() {
          System.out.println("in test case 1");
       }
       //test case 2
       @Test
       public void testCase2() {
          System.out.println("in test case 2");
       }
    }
    
    接下来,创建一个名为的java类文件 TestRunner.java 在 C:\>JUNIT_WORKSPACE 中执行注释。
    
    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 编译测试用例和测试运行器类。
    
    C:\JUNIT_WORKSPACE>javac ExecutionProcedureJunit.java TestRunner.java
    
    现在运行 Test Runner,它将运行在提供的测试用例类中定义的测试用例。
    
    C:\JUNIT_WORKSPACE>java TestRunner
    
    验证输出。
    
    in before class
    in before
    in test case 1
    in after
    in before
    in test case 2
    in after
    in after class
    
    请参阅上面的输出。执行程序如下 -
    • 首先,beforeClass() 方法只执行一次。
    • afterClass() 方法只执行一次。
    • before() 方法为每个测试用例执行,但在执行测试用例之前。
    • after() 方法针对每个测试用例执行,但在测试用例执行之后。
    • 在 before() 和 after() 之间,执行每个测试用例。