在类 WeatherFormatterTest 中我们用了一个来自于 Apache
Commons IO 的工具—— IOUtils 类。
IOUtils 提供了许多很有帮助的静态方法,能帮助让很多工作摆脱繁琐的 I/O
操作。在这个单元测试中我们使用了 IOUtils.toString() 来复制 classpath
中资源 format.expected.dat 中的数据至
String。 不用 Commons IO 我们也能完成这件事情,但是那需要额外的六七行代码来处理像
InputStreamReader 和
StringWriter 这样的对象。我们使用 Commons IO 的主要原因是,能有理由添加对
Commons IO 的测试范围依赖。
测试范围依赖是一个只在测试编译和测试运行时在 classpath 中有效的依赖。如果你的项目是以
war 或者 ear
形式打包的,测试范围依赖就不会被包含在项目的打包输出中。 要添加一个测试范围依赖,在你项目的
dependencies 小节中添加如下 dependency
元素。
Example 4.13. 添加一个测试范围依赖
<project>
...
<dependencies>
...
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
<scope>test</scope>
</dependency>
...
</dependencies>
</project>当你往 pom.xml 中添加了这个依赖以后,运行 mvn
dependency:resolve 你会看到 commons-io
出现在在依赖列表中,范围是 test 。 在我们可以运行该项目的单元测试之前,我们还需要做一件事情。
那就是创建单元测试依赖的 classpath 资源。测试范围依赖将在 9.4.1节 “依赖范围” 中详细解释。

