- 内容提要
- 作者简介
- 译者简介
- 前言
- HTTP
- Servlet 和 JSP
- 下载 Spring 或使用 STS 与 Maven/Gradle
- 手动下载 Spring
- 使用 STS 和 Maven/Gradle
- 下载 Spring 源码
- 本书内容简介
- 下载示例应用
- 第 1 章Spring 框架
- 第 2 章模型 2 和 MVC 模式
- 第 3 章Spring MVC 介绍
- 第 4 章基于注解的控制器
- 第 5 章数据绑定和表单标签库
- 第 6 章转换器和格式化
- 第 7 章验证器
- 第 8 章表达式语言
- 第 9 章JSTL
- 第 10 章国际化
- 第 11 章上传文件
- 第 12 章下载文件
- 第 13 章应用测试
- 附录 A Tomcat
- 附录 B Spring Tool Suite 和 Maven
- 附录 C Servlet
- 附录 D JavaServer Pages
- 附录 E 部署描述符
13.3 应用 JUnit
对于单元测试,我推荐使用 JUnit,你可以从 http://junit.org 下载它。点击下载并安装链接后,你将被重定向到下载页面。你需要下载 junit.jar 和 hamcrest-core.jar 文件。后者是 JUnit 的依赖项,目前版本为 4.12。
如果使用 Maven 或 STS,请将此元素添加到 pom.xml 文件以下载 JUnit 及其依赖关系。
<dependency>
<groupId> junit </ groupId>
<artifactId> junit </ artifactId>
<version> 4.12 </ version>
<scope>test</scope>
</ dependency>JUnit 也广泛用于集成测试,你将在本章后面了解这一点。
你可以通过阅读 JUnit 网站上的文档,了解有关 JUnit 的更多信息以及如何编写 JUnit 测试。
13.3.1 开发一个单元测试
编写单元测试很容易。使用 @org.junit.Test 简单地注解所有测试方法。此外,你可以通过使用 @ org.junit.Before 注解来创建初始化方法。初始化方法在调用任何测试方法之前调用,你可以编写准备测试方法的代码,例如创建将由测试方法使用的对象。
你还可以通过使用 @ org.junit.After 注解方法来创建清理方法。清理方法在测试类中的所有测试方法都被执行之后调用,并且可以用来释放测试期间使用的资源。
清单 13.3 显示了需要进行单元测试的 Calculator 类。
清单 13.3 Calculator 类
package com.example;
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}清单 13.4 显示了 Calculator 类的单元测试类。
清单 13.4 单元测试类
package com.example;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class CalculatorTest {
@Before
public void init() {
}
@After
public void cleanUp() {
}
@Test
public void testAdd() {
Calculator calculator = new Calculator();
int result = calculator.add(5, 8);
Assert.assertEquals(13, result);
}
@Test
public void testSubtract() {
Calculator calculator = new Calculator();
int result = calculator.subtract(5, 8);
Assert.assertEquals(-3, result);
}
}CalculatorTest 类有两个测试方法、一个初始化方法(用 @Before 注解)和一个清除方法(用 @After 注解)。org.junit.Assert 类提供用于声明结果的静态方法。例如,assertEquals 方法用来比较两个值。
13.3.2 运行一个单元测试
Eclipse 和 STS 知道一个类是否是一个 JUnit 测试类。要运行测试类,请右键单击包资源管理器中的测试类,然后选择运行方式> JUnit 测试。或者,使用编辑器打开测试类,然后按 Ctrl + F11 键。
测试完成后,如果 JUnit 视图尚未打开,Eclipse 或 STS 将打开它。如果单元测试成功完成,你将在 JUnit 视图中看到一个绿色条,如图 13.1 所示。
如果其中一个测试失败,你将看到一个红色条,如图 13.2 所示。

图 13.1 一个通过的测试

图 13.2 一个没通过的测试
13.3.3 通过测试套件来运行全部或多个单元测试
在有十几个类的一个小项目中,你将有十几个测试类。在一个更大的项目中,你会有更多测试类。在 Eclipse 或 STS 中,运行一个测试类很容易,但如何运行所有的测试类?
使用 JUunit 的解决方案非常简单。创建一个 Java 类并使用 @RunWith(Suite.class)和 @SuiteClasses() 注解它。后者应该列出你想运行的所有类和其他套件测试。清单 13.5 显示了一个示例。类体可以留空。
清单 13.5 一个测试套件
package com.example;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({ MyTest1.class, MyTest2.class })
public class MyTestSuite {
}如果使用 CI 服务器,则可以将服务器设置为每次提交新代码或修改的代码时自动运行单元测试。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论