由于我们小组的代码是用java写的,在测试工具上我选择了Junit。

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。

Junit 测试也是程序员测试,即所谓的白盒测试,它需要程序员知道被测试的代码如何完成功能,以及完成什么样的功能。

下载完成后,选中项目,右键Build--->Add Library

java 单元测试 推到sonarqube java 单元测试工具_测试方法

java 单元测试 推到sonarqube java 单元测试工具_测试方法_02

 

 

根据我们宠物之家有购买商品选项,我用了加减法来测试。

先不用junit来测试一下

java 单元测试 推到sonarqube java 单元测试工具_Test_03

java 单元测试 推到sonarqube java 单元测试工具_单元测试_04

 

java 单元测试 推到sonarqube java 单元测试工具_Test_05

 

使用 Junit

java 单元测试 推到sonarqube java 单元测试工具_Test_06

鼠标放在需要测试的方法中,右键,Run As ---->JUnit Test

一开始并没有看到JUnit Test,于是我搜索了一下。JDK Compliance版本需要在1.8以上。

java 单元测试 推到sonarqube java 单元测试工具_单元测试_07

java 单元测试 推到sonarqube java 单元测试工具_测试方法_08

 

 

java 单元测试 推到sonarqube java 单元测试工具_Test_09

 

结果出现如下的绿色横条,则测试通过,红色横条,则测试失败

 

java 单元测试 推到sonarqube java 单元测试工具_单元测试_10

Junit 的几种类似于 @Test 的注解:

  1.@Test: 测试方法

    a)(expected=XXException.class)如果程序的异常和XXException.class一样,则测试通过
    b)(timeout=100)如果程序的执行能在100毫秒之内完成,则测试通过

  2.@Ignore: 被忽略的测试方法:加上之后,暂时不运行此段代码

  3.@Before: 每一个测试方法之前运行

  4.@After: 每一个测试方法之后运行

  5.@BeforeClass: 方法必须必须要是静态方法(static 声明),所有测试开始之前运行,注意区分before,是所有测试方法

  6.@AfterClass: 方法必须要是静态方法(static 声明),所有测试结束之后运行,注意区分 @After

Junit 是一个单元测试框架,使用 Junit 能让我们快速的完成单元测试。

我们写完代码想要测试这段代码的正确性,必须新建一个类,然后创建一个 main() 方法,然后编写测试代码。如果需要测试的代码很多呢?那么要么就会建很多main() 方法来测试,要么将其全部写在一个 main() 方法里面。这也会大大的增加测试的复杂度,降低程序员的测试积极性。而 Junit 能很好的解决这个问题,简化单元测试,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度。