美文网首页
Android test 1:Junit 4

Android test 1:Junit 4

作者: saronic | 来源:发表于2016-10-18 05:20 被阅读81次

    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

          本文链接:https://www.haomeiwen.com/subject/esizyttx.html