Android test 1:Junit 4

Android Stuido 2.2.1中,新建项目,默认会建好main包,android test包,和test包。main包里面写正常的业务代码,android test里面写instrumentation test,test包里写单元测试。

Annotation 执行顺序

通过示例观察

在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");
    }
}

执行结果如下

ExampleUnitTest.classReady
ExampleUnitTest.before
ExampleUnitTest.testAdd
ExampleUnitTest.after
ExampleUnitTest.before
ExampleUnitTest.testFoo
ExampleUnitTest.after
ExampleUnitTest.before
ExampleUnitTest.testDiff
ExampleUnitTest.after
ExampleUnitTest.afterClass

执行顺序说明

Junit4为每一个@Test方法实例化一个testcase,在这个testcase的对象中,独立的测试这一个方法。

  • @BeforeClass最早执行,且只执行一次,用于加载expensive resource.
  • @AfterClass最后执行,且只执行一次,用于释放expensive resouce.
  • @Before 每个测试方法执行之前执行一次。
  • @After 每个测试方法执行之后执行一次。
    每个测试方法都在单独的testcase对象中,没有按照testcase里面代码书写顺序执行,而是按照被测试方法名字的字母顺序执行的。

你可能感兴趣的:(Android test 1:Junit 4)