不是说beforeClass方法只会执行一次吗?怎么他跟before或after的方法一样,每次都执行啊?
看测试代码:
- Java code
import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;public class JustTest { @BeforeClass public static void beforeClass() { System.out.println("before class"); } @Before public void before() { System.out.println("before"); } @Test public void test() { System.out.println("test"); } @Test public void test2() { System.out.println("test2"); } @After public void after() { System.out.println("after"); } @AfterClass public static void afterClass() { System.out.println("after class"); } @Before public void beforeAgain() { System.out.println("before again"); }}
我双击test方法 运行结果为:
before class
before
before again
test
after
after class
运行test2方法 运行结果为:
before class
before
before again
test2
after
after class
在这里,运行结果不是应该为
before
before again
test2
after
beforeClass 和 afterClass到底怎么理解?
------解决方案--------------------
beforeClass 是类加载的时候执行,before在测试方法执行前执行。
你双击test方法,当这个方法运行完以后,你的类实例已经销毁了。
再运行tes2() 类需要重新加载,所以BeforeClass又会继续执行