一、Junit介绍
- JUnit 是一个 Java 编程语言的单元测试框架。
- 所谓单元测试是测试应用程序的功能是否能够按需要正常运行,并且确保是在开发人员的水平上。单元测试是一个对单一实体(类或方法)的测试。单元测试是每个软件公司提高产品质量、满足客户需求的重要环节。
- JUnit 促进了“先测试后编码”的理念,
- 强调建立测试数据的一段代码,可以先测试,然后再应用。这个方法就好比“测试一点,编码一点,测试一点,编码一点……”,增加了程序员的产量和程序的稳定性可以减少程序员的压力和花费在排错上的时间。
1、junit优点
- 可以书写一系列的测试方法,对项目所有的接口或者方法进行单元测试。
- 启动后,自动化测试,并判断执行结果, 不需要人为的干预。
- 只需要查看最后结果,就知道整个项目的方法接口是否通畅。
- 每个单元测试用例相对独立,由Junit 启动,自动调用。不需要添加额外的调用语句。
- 添加,删除,屏蔽测试方法,不影响其他的测试方法。 开源框架都对JUnit 有相应的支持。
2、什么是一个单元测试用例
单元测试用例是一部分代码,可以确保另一端代码(方法)按预期工作。为了迅速达到预期的结果,就需要测试框架。
二、Junit注解
1、@Test注解
在junit4中,定义一个测试方法变得简单很多,只需要在方法前加上@Test就行了。
注意:测试方法必须是public void,即公共、无返回数据。可以抛出异常。
2、@BeforeClass注解
当我们运行几个有关联的用例时,可能会在数据准备或其它前期准备中执行一些相同的命令,这个时候为了让代码更清晰,更少冗余,可以将公用的部分提取出来,放在一个方法里,并为这个方法注解@BeforeClass。意思是在测试类里所有用例运行之前,运行一次这个方法。例如创建数据库连接、读取文件等。
注意:方法名可以任意,但必须是public static void,即公开、静态、无返回。这个方法只会运行一次。
3、@AfterClass注解
跟@BeforeClass对应,在测试类里所有用例运行之后,运行一次。用于处理一些测试后续工作,例如:清理数据,日志记录。
注意:同样必须是public static void,即公开、静态、无返回。这个方法只会运行一次
4、@Before注解
与@BeforeClass的区别在于,@Before不止运行一次,它会在每个用例运行之前都运行一次。主要用于一些独立于用例之间的准备工作。
比如两个用例都需要读取数据库里的用户A信息,但第一个用例会删除这个用户A,而第二个用例需要修改用户A。那么可以用@BeforeClass创建数据库连接。用@Before来插入一条用户A信息。
注意:必须是public void,不能为static。不止运行一次,根据用例数而定。
5、@After注解
after与@Before对应
6、@lgnore注解
有时候我们想暂时不运行某些测试方法\测试类,可以在方法前加上这个注解。在运行结果中,junit会统计忽略的用例数,来提醒你。但是不建议经常这么做,因为这样的坏处时,容易忘记去更新这些测试方法,导致代码不够干净,用例遗漏。使用此标注的时候不能与其它标注一起使用,如:和@Test 标注一起使用,那就没用了
例如
@Ignore
@Test
public void igoreTest(){
System.out.println("忽略测试");
}