zoukankan      html  css  js  c++  java
  • 如何使用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实战

  • 相关阅读:
    MySQL 多会话之间更新数据的小实例
    MySQL Profile
    MySQL Explain
    MySQL 索引
    利用网站上传漏洞使用一句话木马控制服务器
    kali之nmap
    kali之使用sqlmap进行sql注入
    kali之DVWA
    Kali安装nessus
    openvas
  • 原文地址:https://www.cnblogs.com/hitWTJ/p/9865428.html
Copyright © 2011-2022 走看看