测试对于保证软件开发质量有着非常重要的作用单元测试更是必不可少JUnit是一个非常强大的单元测试包可以对一个/多个类的单个/多个方法测试还可以将不同的TestCase组合成TestSuit使测试任务自动化Eclipse同样集成了JUnit可以非常方便地编写TestCase
我们创建一个Java工程添加一个exampleHello类首先我们给Hello类添加一个abs()方法作用是返回绝对值
下一步我们准备对这个方法进行测试确保功能正常选中Hellojava右键点击选择New>JUnit Test Case
Eclipse会询问是否添加junitjar包确定后新建一个HelloTest类用来测试Hello类
选中setUp()和tearDown()然后点击Next
选择要测试的方法我们选中abs(int)方法完成后在HelloTestjava中输入
JUnit会以以下顺序执行测试(大致的代码) try {
HelloTest test = new HelloTest(); // 建立测试类实例
testsetUp(); // 初始化测试环境
testtestAbs(); // 测试某个方法
testtearDown(); // 清理资源
}
catch…
setUp()是建立测试环境这里创建一个Hello类的实例tearDown()用于清理资源如释放打开的文件等等以test开头的方法被认为是测试方法JUnit会依次执行testXxx()方法在testAbs()方法中我们对abs()的测试分别选择正数负数和如果方法返回值与期待结果相同则assertEquals不会产生异常
如果有多个testXxx方法JUnit会创建多个XxxTest实例每次运行一个testXxx方法setUp()和tearDown()会在testXxx前后被调用因此不要在一个testA()中依赖testB()
直接运行Run>Run As>JUnit Test就可以看到JUnit测试结果
绿色表示测试通过只要有个测试未通过就会显示红色并列出未通过测试的方法可以试图改变abs()的代码故意返回错误的结果(比如return n+;)然后再运行JUnit就会报告错误
如果没有JUnit面板选择Window>Show View>Other打开JUnit的View
JUnit通过单元测试能在开发阶段就找出许多Bug并且多个Test Case可以组合成Test Suite让整个测试自动完成尤其适合于XP方法每增加一个小的新功能或者对代码进行了小的修改就立刻运行一遍Test Suite确保新增和修改的代码不会破坏原有的功能大大增强软件的可维护性避免代码逐渐腐烂