JUnit单元测试的几个规律总结
之前学面向对象课程,教材上有每编写一段代码就会附上test代码,当时不是很明白那是为什么,现在做开发项目练习,开始用JUnit写测试代码,才发现了那些test方法的真正用途。
研究了一下午,现在总结一下测试类的方法,以后会更新其他方法测试的规律。
一、单元测试(UnitTests)
从单元的角度,测试每个单元的功能,以及异常的抛出
1、测试构造函数并检查结果,然后使构造函数抛出每个异常,捕捉异常
常用方法:fail()如果没有抛出异常则测试失败,参数为字符串
2、测试功能方法,如果传递的参数有几种可能,那每一种可能都要涉及到
二、模块准确性测试(AccuracyTests)
就是测试每个模块结果的准确性
1、测试构造函数(同时测试了getters方法):首先利用构造函数构造一个类的实例,然后依次调用getters在利用JUnit里的方法测试数据的正确性
常用方法有:assertEquals和assertTrue,assertFalse。具体的用法可以参见JUnit API
注:assertEquals不仅可以用于一般数字的匹配还可以用于字符串的匹配
2 、测试类中的方法:利用构造函数构造一个类的实例,然后调用此方法。用自己推算的结果和程序结果对比,来验证方法的正确性。
3、最后,在每个函数测试完成之后,还要测试整个模块的函数功能
三、失败测试(FailureTest)
就是测试在各种方法测试失败时异常的抛出情况
常用方法:setUp()继承于TestCase,建立测试,在测试开始之前。并且为测试提供target的初始工作
四、高压测试(StressTest)
就是测试当处理数据量很大的时候方法的性能,即运行时间
常用方法,与C语言类似,Java也有获得系统当前时间的方法System.currentTimeMillis。在方法执行前后分别获取系统时间以计算方法运行的时间