JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即白盒测试。该项目主页:http://www.junit.org/
JUnit测试骨架
使用JUnit时,主要都是通过继承TestCase类别来撰写测试用例,使用testXXX()名称来撰写单元测试。
用JUnit写测试真正所需要的就三件事:
1. 一个import语句引入所有junit.framework.*下的类。
2. 一个extends语句让你的类从TestCase继承。
3. 一个调用super(string)的构造函数。
功能类MathTool
1. package com.zj.c01;
2. public class MathTool {
3. public static int gcd(int num1, int num2) {
4. int r = 0;
5. while (num2 != 0) {
6. r = num1 % num2;
7. num1 = num2;
8. num2 = r;
9. }
10. return num1;
11. }
12. }
测试类MathToolTest
1. package com.zj.c01;
2. import junit.framework.TestCase;
3.
4. public class MathToolTest extends TestCase {
5. public MathToolTest(String name) {
6. super(name);
7. }
8.
9. public void testGcd() {
10. assertEquals(5, MathTool.gcd(10, 5));
11. }
12. }
使用Eclipse-Run As JUnit Test
在运行TestRunner执行测试时,你会发现到有Failure与Error两种测试尚未通过的信息。
Failure指的是预期的结果与实际运行单元的结果不同所导致,例如当使用assertEquals()或其它assertXXX()方法断言失败时,就会回报Failure,这时候要检查你的单元方法中的逻辑设计是否有误。
Error指的是你的程序没有考虑到的情况,在断言之前程序就因为某种错误引发例外而终止,例如在单元中存取某个数组,因为存取超出索引而引发 ArrayIndexOutOfBoundsException,这会使得单元方法无法正确完成,在测试运行到asertXXXX()前就提前结束,这时候要检查你的单元方法中是否有未考虑到的情况而引发流程突然中断。
JUnit的各种断言
JUnit提供了一些辅助函数,用于帮助你确定某个被测试函数是否工作正常。通常而言,我们把所有这些函数统称为断言。断言是单元测试最基本的组成部分。
1. assertEquals([String message], expected,actual)
比较两个基本类型或对象是否相等(expected和actual是原始类型数值(primitive value)或者必须为实现比较而具有equal方法);
2.assertFalse([String message],boolean condition)
对布尔值求值,看它是否为“真“;
3.assertTrue([String message],boolean condition)
对布尔值求值,看它是否为“假“;
4.assertNull([String message],java.lang.Object object)
检查对象是否为“空“;
5.assertNotNull([String message],java.lang.Object object)
检查对象是否不为“空”;
6.assertSame([String message],expected,actual)
检查两个对象是否为同一实例;
7.assertNotSame([String message],expected,actual)
检查两个对象是否不为同一实例;
8. fail( String message )
使测试立即失败,其中 message 参数使可选的。这种断言通常被用于标记某个不应该到达的分支(例如,在一个预期发生的异常之后)。
分享到:
相关推荐
锻造骨架用于建造Forge mods的骨架去做从字符串支持Curse ChangeLog(部分完成) Traar的Sonarqube和Jar签名支持Sonarqube和Jar签名支持CircleCI 秘密解析器也应该支持Gradle属性修复JUnit3,JUnit4和JUnit Vintage...
生成的骨架: 单行推荐编译和运行 JUnit 测试 单行推荐删除源 最新版本是 v0.60 更新 添加 shell 脚本以生成、编译、测试 leetcode 解决方案,就像 ant 所做的那样。 一些其他的画龙点睛。 leetcode-helper 项目完成...
这是使用 maven、cucumber-jvm 和 selenium webdriver 的测试框架的骨架。 这遵循使用 PageFactory 实例化页面对象的页面对象设计模式。 这包含一个用于 BBC 网页演示目的的场景。 如何运行测试: 要在本地运行...
生成的骨架: 单行推荐编译和运行 JUnit 测试 单行推荐删除源 最新版本是 v0.60 更新 添加 shell 脚本以生成、编译、测试 leetcode 解决方案,就像 ant 所做的那样。 一些其他的画龙点睛。 leetcode-helper 项目完成...
java骨架 使用Java SE和EE进行快速测试驱动的原型设计和实验的简单框架 分行 JavaSE JavaEE 要求 JDK> = 1.8.x和<= 15 Maven> = 3.5.x 配套 Junit 5 Jupiter API和引擎 Maven组装插件 Maven编译插件 Maven ...
Scala Maven项目框架Scala和Java的联合编译配置日志库配置:scala使用scala-logging,java使用slf4j 测试库配置:scalatest / Spec2 / scalacheck / JUnit 模拟库配置:mockito / scalamock简单展示poso(普通的旧...
标准 Web 应用程序项目骨架 使用 Spring Web MVC、Spring Security、JPA/Hibernate + MySQL、Thymeleaf、Bootstrap、Gradle 开发 Web 应用程序 如果您要使用以下技术堆栈,只需从 github 克隆这个项目并开始开发您的...
Cucumber-Java 骨架 这是使用 Java 为 Cucumber 设置的最简单的构建脚本。 没有什么比 webapp 或浏览器测试更花哨了。 所有这些都是为了向您展示如何安装和运行 Cucumber! 获取代码 吉特: git clone ...
CucumberJava骨架 这是使用Java为Cucumber设计的最简单的构建脚本设置。 没有像Webapp或浏览器测试这样的花哨的东西了。 这一切都是为了向您展示如何安装和运行Cucumber! 获取代码 Git: git clone ...
Edj(发音像英文单词“edge”)是一个简单的行编辑器的骨架,它模仿了 Unix ed(1)。 sedj 是流编辑器 - Unix sed(1) 的一个很小的子集。 vedj 是 - 等等 - 视觉 edj。 名字都押韵。 它不是为了成为一个有用的编辑器...