在介绍junit之前,把一些知识点提前了解一下
单元测试是一个对单一实体(类或方法)的测试。
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
测试套件:通常把一组相关的测试称为一个测试套件(test suite)。
通过测试套件,将服务于同一个测试目的或同一运行环境下的一系列测试用例有机的组合起来。测试套件是按照测试计划所定义的各个阶段的测试目标决定的,即先有测试计划,后面才有测试套件。
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
测试常识:
一个正式的编写好的单元测试用例的特点是:即在测试执行前就已知输入和预期输出。
每一项需求至少需要两个单元测试用例:一个正检验,一个负检验。如果一个需求有子需求,每一个子需求必须至少有正检验和负检验两个测试用例。
1 是什么?
JUnit 是一个 Java编程语言的单元测试框架。
2 使用方法(举例说明)测试用例类+运行类!!!
2.1 maven集成 junit 4.12
2.2 创建被测试类==== MessageUtil
public class MessageUtil { private String message; public MessageUtil(String message){ this.message = message; } public String printMessage(){ System.out.println(message); return message; } }
2.3 创建测试用例类====TestJunit
作用:测试用例类 顾名思义就是测试用例代码!!!
import static org.junit.Assert.assertEquals; import org.junit.Test; import util.MessageUtil; public class TestJunit { String message = "Hello World1"; MessageUtil messageUtil = new MessageUtil("hello"); @Test public void testPrintMessage() { assertEquals(message,messageUtil.printMessage()); } }
2.4 创建运行类 ====TestRunner
作用:运行类 主要用来执行测试用例类!!!
import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJunit.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
2.5 运行 在运行类文件页面 右击
2.6 运行结果 ===会提示错误的地方
到此,大家对junit有一个大概了解,但是junit进行单元测试,能测试哪些方面呢?
3 JUnit 能测试哪些方面呢?
3.1 断言
3.1.1 常用类以及方法
这个类里面有很多同名方法,作用一样,只是参数数据类型不一样,自己根据需要选用就可以了。每种功能选一个方法示范。都是静态void方法!
方法 | 描述 |
assertArrayEquals(byte[] expecteds, byte[] actuals) |
比较两个参数是否相等 |
assertFalse(boolean condition) 【相反的assertTrue】 |
判定参数(参数条件)是错的 |
assertNotNull(Object object) 【相反的assertNull】 |
判定对象不为空 |
assertNotSame(Object unexpected, Object actual) 【相反的assertSame】 |
检查两个相关对象是否指向同一个对象 |
assertThat(T actual, org.hamcrest.Matcher<T> matcher) |
判断actual是否符合matcher |
fail() |
测试失败 |
3.1.2 示例代码
3.2 执行过程
3.3 执行测试
3.4 套件测试
3.5 忽略测试
3.6 时间测试
3.7 异常测试
3.8 参数化测试
3.9 ANT测试
原文地址:https://www.cnblogs.com/haiqin/p/9102527.html