在项目中需要写单元测试,如何保证写的单元测试的质量是比较高的。有以下几个原则。
- 编写具有确定性结果的测试用例。
- 代码中使用断言,而不是System.out.print语句输出结果,然后人工验证。
- 对于需要访问数据库的操作或者外部数据,可以使用内存数据库或者EasyMock之类的工具。
- 测试完数据之后,尽可能的恢复现场(测试之前的环境,这样测试用例便可以重复执行)。
Spring集成TestNG
- 首先把需要的jar包加入到项目里,因为都是测试相关的,所以scope都是test,引入jar包的pom.xml需要增加如下的依赖(spring 的版本需要在3.2以上):
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<!-- 用于记录jdbc的日志, 输出的日志格式会带上相应的参数-->
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
<scope>test</scope>
</dependency>
<!-- H2内存数据库, 适合用