Does Junit reinitialize the class with each test method invocation?

前端 未结 5 1956
执笔经年
执笔经年 2020-12-10 11:05

When i run the below code, both test cases come true:

import static junit.framework.Assert.assertEquals;

import org.junit.Test;

public class MyTest{
    pr         


        
5条回答
  •  鱼传尺愫
    2020-12-10 12:07

    New Instance of MyTest for each test method

    For each test method a new instance of MyTest will be created this is the behavior of Junit.

    So in your case for both methods the variable count will have value 1, and thus the value of count++ will be 2 for both the test methods and hence the test cases pass.

    public class MyTest{
       public MyTest(){
          // called n times
          System.out.println("Constructor called for MyTest");
       }
    
       @Before //called n times
       public void setUp(){
          System.out.println("Before called for MyTest");
       }
    
       //n test methods
    }
    

    If you execute the code above with 2 test methods:

    Output will be:

    Constructor called for MyTest
    Before called for MyTest
    //test execution
    Constructor called for MyTest
    Before called for MyTest
    

提交回复
热议问题