(三)使用clover为junit单元测试做覆盖率分析

发表于:2009-9-11 13:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:叶赫华    来源:搜狐博客

  四、重构测试代码实现百分百测试覆盖率

  我们总是希望做单元测试的时候,让代码的测试覆盖率尽可能的达到100%,所以我们需要重构测试代码。从分析得知,第40行虽然执行了27次,但是从来没有测试if的判断条件为true的情况,所以我们要添加测试用例,测试isZero()返回为true的情况!因此,我们修改测试代码MoneyTest.java文件,在前边初始化地方加上一个Money实例,如下:

public class MoneyTest extends TestCase {

   private Money f12CHF;

   private Money f14CHF;

   private Money f7USD;

   private Money f21USD;

   private Money f0USD;

  在setup方法里添加:

protected void setUp() {

f12CHF= new Money(12, "CHF");

f14CHF= new Money(14, "CHF");

f7USD= new Money( 7, "USD");

f21USD= new Money(21, "USD");

f0USD = new Money(0, "USD"); //sincky

  在最后加上一个测试用例:

public void testMoneyEqualsZero() {

assertTrue(!f0USD.equals(null));

IMoney equalMoney = new Money(0, "CHF");

assertTrue(f0USD.equals(equalMoney));

}

  之后,我们重新编译,测试,创建报告,即执行下列命令:

>ant clean

>ant clover compile

>ant test

>ant report

  这时候再打开新的html报告,看到如下效果覆盖率已经到达100%:

  完毕,如果能进展到这一步,相信你已经对使用junit、ant、clover做java的单元测试,已经到了一个新的飞越!如果有兴趣,你还可以把junit报告和clover报告一并输出,以更好的为企业开发中使用这种工作模式!

  文章源码均来自clover网站,本人稍做修改。

  写在后面的话:目前国内单元测试尚在起步阶段,由于工作量大,耗时耗成本,很多公司都省去该环节;但是使用一些先进的技术,对源代码一些关键的类进行单元测试是可行的,也是必要的;希望本文对测试与java开发界朋友有所收获。

相关阅读:

使用clover为junit单元测试做覆盖率分析(二)

使用clover为junit单元测试做覆盖率分析(一)

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号