前段时间,以救火队员的身份去帮助公司的测试小组写自动化测试项目。对于这个自动化测试项目,准确来说应该算接口的自动化测试,我的理解就是用代码构建完整的逻辑,代替人工去页面上点点点。
很快我就发现,公司自己封装的项目体系是不能使用@Test,@Before、@After注解的,所有的方法都需要以test开头,比如testSaveUser……心里想着,这不是Junit3.x的写法吗?然后我去看了项目所引用的Junit版本的确是4.1.2。作为救火队员的我也没有时间去深究到底为什么,先按照现有的这种写法写吧,但是个人的习惯还是让我给自己写的用例添加了@Test注解。
项目快结束的时候,终于有时间去解决这些遗留的问题了。我发现在封装的底层方法中继承了TestCase这个类,这个是Junit3.x中的写法啊,问题可能就是合理了。大胆的去把这个TestCase去掉,然后去执行所有的用例,果然只有我写的用例执行了。跟测试组的老大交流之后,他知道这个问题,但是一直不知道怎么解决,我就这样解决了一个遗留问题:)……
下面概括下Junit注解的含义:
@Test:要执行的用例,只有添加了这个注解,用例才会被执行;
@Ignore: 不执行的用例,只要添加了这个注解,用例就不会被执行;
@Before :在方法执行之前执行,类似Junit3.x中setUp方法;
@After:在方法执行之后执行,类似于Junit3.x中的tearDown方法;
@BeforeClass:在所有的方法执行前执行;
@AfterClass:在所有方法后执行;
一个完整的用例的执行顺序:
@BeforeClass ->@Before->@Test->@After ->@AfterClass