Junit 教程
JUnit 是一个 Java编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。
本教程将教你用 Java 编程语言做单元测试时,如何使用 JUnit。
单元测试(英语:Unit Testing)又称为模块测试 ,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。
单元测试允许程序员在未来重构代码,并且确保模块依然工作正确(复合测试)。这个过程就是为所有函数和方法编写单元测试,一旦变更导致错误发生,借助于单元测试可以快速定位并修复错误。
单元测试可以由两种方式完成:
手工测试 | 自动化测试 | |
---|---|---|
定义 | 手动执行测试用例并不借助任何工具的测试被称为人工测试。 | 借助工具支持并且利用自动工具执行用例被称为自动测试。 |
效率 | 消耗时间并单调:由于测试用例是由人力资源执行,所以非常缓慢并乏味。 | 快速自动化运行测试用例时明显比人力资源快。 |
人力资源要求 | 人力资源上投资巨大:由于测试用例需要人工执行,所以在人工测试上需要更多的试验员。 | 人力资源投资较少:测试用例由自动工具执行,所以在自动测试中需要较少的试验员。 |
可信度 | 可信度较低:人工测试可信度较低是可能由于人工错误导致测试运行时不够精确。 | 可信度更高:自动化测试每次运行时精确地执行相同的操作。 |
程式化 | 非程式化:编写复杂并可以获取隐藏的信息的测试的话,这样的程序无法编写。 | 程式化:试验员可以编写复杂的测试来显示隐藏信息。 |
什么是 JUnit?
JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。
JUnit 促进了“先测试后编码”的理念,强调建立测试数据的一段代码,可以先测试,然后再应用。这个方法就好比“测试一点,编码一点,测试一点,编码一点……”,增加了程序员的产量和程序的稳定性,可以减少程序员的压力和花费在排错上的时间。
Junit 特点:
- JUnit 是一个开放的资源框架,用于编写和运行测试。
- 提供注解来识别测试方法。
- 提供断言来测试预期结果。
- 提供测试运行来运行测试。
- JUnit 测试允许你编写代码更快,并能提高质量。
- JUnit 优雅简洁。没那么复杂,花费时间较少。
- JUnit 测试可以自动运行并且检查自身结果并提供即时反馈。所以也没有必要人工梳理测试结果的报告。
- JUnit 测试可以被组织为测试套件,包含测试用例,甚至其他的测试套件。
- JUnit 在一个条中显示进度。如果运行良好则是绿色;如果运行失败,则变成红色。
什么是一个单元测试用例?
单元测试用例是一部分代码,可以确保另一端代码(方法)按预期工作。为了迅速达到预期的结果,就需要测试框架。JUnit 是 java 编程语言理想的单元测试框架。
一个正式的编写好的单元测试用例的特点是:已知输入和预期输出,即在测试执行前就已知。已知输入需要测试的先决条件,预期输出需要测试后置条件。
每一项需求至少需要两个单元测试用例:一个正检验,一个负检验。如果一个需求有子需求,每一个子需求必须至少有正检验和负检验两个测试用例。
适用人群
本教程是为初学者准备的,来帮助他们了解 JUnit 工具的基本功能。阅读完本教程后,你会发现自己在使用 JUnit 测试框架专业知识方面处在一个中等水平,之后你可以把自己提升到一个更高的水平。
学习前提
我们假设你要使用 JUnit 来处理所有 Java 项目的开发。如果你有使用任何编程语言特别是 Java 编程和软件测试过程的软件开发的知识,就太好了。
版本信息
本教程中演示代码基于以下版本:
语言/框架 | 版本信息 |
---|---|
JDK | 1.6.0_21 |
JUnit | 4.10 |