内容简介:从官网www.junit.org 下载 JUnit 最新版本的压缩文件。笔者使用Maven(Java包管理工具)导入所需要的jar包:测试代码和生成代码分开放置,Maven默认目录正好符号这个要求。
从官网www.junit.org 下载 JUnit 最新版本的压缩文件。
笔者使用Maven(Java包管理工具)导入所需要的jar包:
<!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> 复制代码
基本用法
测试代码和生成代码分开放置,Maven默认目录正好符号这个要求。
被测试代码放在 main
下的 java
目录中,junit测试代码放在 test
下的 java
目录中,形成一一对应关系,测试代码使用 Test
开头命名。
被测试 MessageDemo
代码:
测试 TestMessageDemo
代码:
基本的已经写好了,但是如何运行测试呢? 还需要建一个运行测试的文件:
好了,运行测试:
看到 true
表明测试成功,那么我们来尝试一下测试不成功是什么情况。
修改 TestMessageDemo
代码:
重新运行测试:
测试结果为 false
,并且指明了期望输出的结果 No
和实际输出的结果 HelloWorld
。
JUnit 断言
什么是断言?刚开始我也很困惑,后来搞了大半天才明白断言就是"判断"。
Junit所有的断言都包含在 Assert 类中。
这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的一些有用的方法列式如下:
void assertEquals(boolean expected, boolean actual) void assertTrue(boolean expected, boolean actual) void assertFalse(boolean condition) void assertNotNull(Object object) void assertNull(Object object) void assertSame(boolean condition) void assertNotSame(boolean condition) void assertArrayEquals(expectedArray, resultArray)
JUnit 注解
@Test @Before @After @BeforeClass @AfterClass @Ignore
JUnit 加注解执行过程
beforeClass() afterClass() before() after()
JUnit 执行测试
测试用例是使用 JUnitCore 类来执行的。JUnitCore 是运行测试的外观类。要从命令行运行测试,可以运行 java org.junit.runner.JUnitCore
。对于只有一次的测试运行,可以使用静态方法 runClasses(Class[])
。
JUnit 套件测试
测试套件意味着捆绑几个单元测试用例并且一起执行他们。在 JUnit 中, @RunWith
和 @Suite
注释用来运行套件测试。
被测试 MessageDemo
代码:
新建两个测试类,用来展示套件测试:
测试 TestMessageDemo
代码:
测试 TestMessageDemo2
代码:
TestSuite
代码:
TestRunner
代码:
测试结果:
通过这样的方式,我们就可以一次运行多个测试了,看起来也不是很复杂哦!
JUnit 时间测试
如果一个测试用例比起指定的毫秒数花费了更多的时间,那么 Junit 将自动将它标记为失败。 timeout
参数和 @Test
注释一起使用。是不是很强大?
就像这样:
@Test(timeout=1000) 复制代码
时间单位是毫秒。
JUnit 异常测试
Junit 用代码处理提供了一个追踪异常的选项。你可以测试代码是否它抛出了想要得到的异常。 expected
参数和 @Test
注释一起使用。
比如这样:
@Test(expected = ArithmeticException.class) 复制代码
JUnit 参数化测试
Junit 4 引入了一个新的功能参数化测试。参数化测试允许开发人员使用不同的值反复运行同一个测试。你将遵循 5 个步骤来创建参数化测试。
@RunWith(Parameterized.class) @Parameters
一旦每一行数据出现测试用例将被调用。
参数化测试例子
被测试代码 PrimeNumberChecker
:
测试代码 TestPrimeNumberChecker
:
测试运行代码 TestRunner
:
测试运行结果:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用 Gomock 进行单元测试
- 使用Jest进行React单元测试
- Jest & enzyme 进行react单元测试
- 如何实现插入排序以及进行单元格测试
- 如何对 Jenkins 共享库进行单元测试
- 对 Golang 代码调用 Elasticsearch 进行单元测试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
离散数学及其应用
SusannaS.Epp / 高等教育出版社 / 2005-3-1 / 63.0
离散数学及其应用:英文本,ISBN:9787040162301,作者:( )Susanna S.Epp著一起来看看 《离散数学及其应用》 这本书的介绍吧!