什么是JUnit
1)JUnit是xUnit的一个子集,xUnit是一套基于测试驱动开发的测试框架。
其中的断言机制:将程序预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性。
2)JUnit测试是程序员测试,即白盒测试,因为程序员知道被测试的软件如何完成功能和完成什么样的功能。
3)JUnit是一个回归测试框架。继承TestCase类,可以用JUnit进行自动测试。
4)多数Java的开发环境都已经集成了JUnit作为单元测试的工具,如Eclipse。
使用的注意事项
1.测试方法上必须使用@Test
2.测试方法必须使用public void进行修饰。
3.新建一个源代码目录来存放测试代码。
4.测试类的包应该和被测试类的包一样。
5.测试单元中的每个方法一定要能够独立测试,其方法不能有任何依赖。
测试结果中关于Failure和error的解释
1)Failure一般由测试单元使用断言方法来判断失败引起的,这个报错,说明测试点发现了问题,即程序的输出结果和我们的预期结果不一样。
2)error是由代码异常引起的,它可以产生于代码本身的错误,也可以是被测试代码中的一个隐藏bug。
注解的使用方法
@BeforeClass
修饰的方法会在所有方法被调用前执行,且该方法是静态的,所以放测试类被加载后就接着运行它,而且在内存中它只会存在一份示例,比较适合加载配置文件。(针对所有测试,只执行一次)。
@AfterClass
所修饰的方法通常用来对资源管理,如关闭数据库连接(针对所有测试,只执行一次)
@BeforeClass和@AfterClass会在每个测试方法执行前后各执行一次。
@Test
测试方法,这里可以测试期望异常和超时时间。
@Ignore
忽略的测试方法
assert提供了多个断言方法. 主用于比较测试传递进去的两个参数.
Assert.assertEquals();及其重载方法: 1. 如果两者一致, 程序继续往下运行. 2. 如果两者不一致, 中断测试方法
注意:
1)@Before
在每个测试方法之前都会运行一次,只需声明成public
@BeforeClass
在类中只运行一次,必须声明成public static
2)每运行一个@Test方法,就会为该测试类新建一个新的实例。
所以@BeforeClass和@AfterClass必须是static的,因为运行他们的时候,测试类还没有实例化呢。