Android Stuido 2.2.1中猫缭,新建項(xiàng)目,默認(rèn)會建好main包褐啡,android test包,和test包鳖昌。main包里面寫正常的業(yè)務(wù)代碼备畦,android test里面寫instrumentation test,test包里寫單元測試许昨。
Annotation 執(zhí)行順序
通過示例觀察
在Android studio自動生成的ExampleUnitTest.class里面換成如下代碼:
public class ExampleUnitTest {
@BeforeClass
public static void classReady() {
System.out.println("ExampleUnitTest.classReady");
}
@AfterClass
public static void afterClass() {
System.out.println("ExampleUnitTest.afterClass");
}
@Before
public void before() {
System.out.println("ExampleUnitTest.before");
}
@After
public void after() {
System.out.println("ExampleUnitTest.after");
}
@Test
public void testFoo() {
System.out.println("ExampleUnitTest.testFoo");
}
@Test
public void testAdd() {
System.out.println("ExampleUnitTest.testAdd");
}
@Test
public void testDiff() {
System.out.println("ExampleUnitTest.testDiff");
}
}
執(zhí)行結(jié)果如下
ExampleUnitTest.classReady
ExampleUnitTest.before
ExampleUnitTest.testAdd
ExampleUnitTest.after
ExampleUnitTest.before
ExampleUnitTest.testFoo
ExampleUnitTest.after
ExampleUnitTest.before
ExampleUnitTest.testDiff
ExampleUnitTest.after
ExampleUnitTest.afterClass
執(zhí)行順序說明
Junit4為每一個(gè)@Test方法實(shí)例化一個(gè)testcase懂盐,在這個(gè)testcase的對象中,獨(dú)立的測試這一個(gè)方法糕档。
- @BeforeClass最早執(zhí)行莉恼,且只執(zhí)行一次,用于加載expensive resource.
- @AfterClass最后執(zhí)行速那,且只執(zhí)行一次类垫,用于釋放expensive resouce.
- @Before 每個(gè)測試方法執(zhí)行之前執(zhí)行一次。
- @After 每個(gè)測試方法執(zhí)行之后執(zhí)行一次琅坡。
每個(gè)測試方法都在單獨(dú)的testcase對象中,沒有按照testcase里面代碼書寫順序執(zhí)行残家,而是按照被測試方法名字的字母順序執(zhí)行的榆俺。