如何使用JUnit+JaCoCo+EclEmma完成单元测试

单元测试网址
—–如何快速完成单元测试代码
网址内容的摘要:
1. JUnit安装(http://junit.org/junit4/ 目前最新版本是5.1)
2. JaCoCo和EclEmma安装
3. 自动生成单元测试代码(默认Java项目已Ready):
4. 运行单元测试鼠标选中要运行的代码,EclEmma安装后直接可以点击IDE上方的工具栏,有一个运行按钮,
5. 查看单元测试覆盖率

以上是本次插件的全部介绍。我们通过这些工具可以快速生成单元测试代码,并利用分析工具将单元测试覆盖率尽量提高,这样我们对自己开发的代码更有信心了。当然,我们在这里并不是为了单纯的追求这个数字,在增加单元测试覆盖率的诱导下,我们重新理清了测试的步骤,写出了更有意义、更全面的单元测试。而且根据单元测试分析工具给的反馈,我们还发现了先前没有想到的情形。因此,单元测试的覆盖率并不只是一个为了取悦管理者的数据,它实实在在地帮助我们改善了代码的质量,增加了我们对所编写代码的信心。


junit中的assert方法全部放在Assert类中,

总结一下junit类中assert方法的分类。

1.assertTrue/False([String message,]boolean condition);
判断一个条件是true还是false。感觉这个最好用了,不用记下来那么多的方法名。
2.fail([String message,]);
失败,可以有消息,也可以没有消息。
3.assertEquals([String message,]Object expected,Object actual);
判断是否相等,可以指定输出错误信息。
第一个参数是期望值,第二个参数是实际的值。
这个方法对各个变量有多种实现。在JDK1.5中基本一样。
但是需要主意的是float和double最后面多一个delta的值,可能是误差范围,不确定这个 单词什么意思,汗一个。
4.assertNotNull/Null([String message,]Object obj);
判读一个对象是否非空(非空)。
5.assertSame/NotSame([String message,]Object expected,Object actual);
判断两个对象是否指向同一个对象。看内存地址。
6.failNotSame/failNotEquals(String message, Object expected, Object actual)
当不指向同一个内存地址或者不相等的时候,输出错误信息。
注意信息是必须的,而且这个输出是格式化过的。
6.1.assertTrue(String message,boolean condition)
Asserts that a condition is true.判断为真。这里String message,可要可不要。

附junit4详解
http://www.cnblogs.com/eggbucket/archive/2012/02/02/2335697.html

7.assertArrayEquals(char[] expecteds, char[] actuals)
Asserts that two char arrays are equal.断言两个char数组是否相等。

8.assertArrayEquals(int[] expecteds, int[] actuals)
Asserts that two int arrays are equal.断言两个int数组是否相等。类似的还有float,double,boolean,long等等。

9.assertArrayEquals(String message,Object[] expecteds, Object[] actuals)
Asserts that two object arrays are equal.断言两个对象组是否相等。String message,可有可无,输出信息用的。
10.assertEquals(Object[] expecteds, Object[] actuals)
Deprecated. use assertArrayEquals
(不赞成,反对( deprecate ); )
或者用
assertEquals(Object expected, Object actual)
Asserts that two objects are equal.
断言两个对象组是否相等。


注意事项

如果Junit中使用了 Mock 技术,会与 eclemma 冲突
解决方法是新建一个 JRE,
Windows -> Preferences -> Java -> InstalledJRE
新建后在Default VM arguments里面指定你所用的mock类库文件,
比如 -javaagent:”D:/repository”/mockit/jmockit/0.999.4/jmockit-0.999.4.jar 。
(这个jar是项目中用到的mock类库,每个项目不一定一样,请注意修改)


进入TestSuite类,右键 Coverage As -> Coverage configuation,
点到JRE标签夜里面,指定刚刚新建好的JRE,运行就可以正常统计了。

参考网址: http://knjname.hateblo.jp/entry/2014/09/01/042624

ps:我看了半天,日文真的不会orz


关于mock测试:

链接1:
实际工作中,测试角色可能会遇到如下情况:场景一:甲开发A模块,乙开发B模块,甲的进度比乙快,但A模块的方法依赖于B模块,甲要调试代码怎么办?场景二:测试仔进行单元测试,但要么方法之间存在业务耦合关系,要么没有测试数据,怎么办?

链接2:
本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用Mockito的Java示例。

链接3:
关于软件测试中的单元测试—–mock讲解:java的mock测试框架

链接4:
单元测试系列:Mock工具之Mockito实战

原文地址:https://www.cnblogs.com/hitWTJ/p/9865428.html