单元测试是对软件基本组成的单元进行测试,如对函数、类等的测试。
先理解相关概念:
覆盖率:
1.语句覆盖:指的是代码中所有语句都被至少执行一遍,常用工具:TrueCoverage等;
2.判断覆盖:指每个判断分别取真和假各一次来进行测试;
3.条件覆盖:指程序中每个判断中的每个条件的所有可能取值的全部组合情况至少被执行一次;
4.路径覆盖:程序中执行到路径数量和所有可能的执行路径的比率;
桩函数:设计一个与被调用函数相同的低代价函数,去替换被调用函数,来模拟出被调用函数失败的情况,常用工具如HOOK等;
驱动函数:是测试用例的代码实现函数。
下面为一个简单的例子,只要三步就ok,原形摘于网络,做了部分简化和修改以便更容易理解:
1.在Eclipse中配置junit的方法:点击properties--java build path-libraries, 点击Add External
JARs,把JUNIT加进来就ok。
2.新建HelloWorld类:
public class HelloWorld { public String say(){ return "Hello World!"; } public static void main(String[] args) { } } |
3.再建个测试类:
import junit.framework.TestCase; public class TestHelloWorld extends TestCase { public static void main(String[] args) { |
运行TestHelloWorld 中的main就行了,显示如下:
如果把测试代码的Hello World!改为Hllo World!,则显示如下:
注:程序中assertEquals()书上称为断言,源代码如下:
static { static |