接上篇:https://developer.aliyun.com/article/1227489?spm=a2c6h.13148508.setting.27.48e04f0eaBVGWH
一、 测试资源使用案例
在上一章中,讲了测试用例和资源的命名规则以及存放方式。但是,只是文字的描述,没有什么体感。所有,这一章将举例一个完整的案例来实际说明。
1. 被测案例代码
以UserService的createUser方法为例说明:
/** * 用户服务类 */ @Service public class UserService {
/** 服务相关 */ /** 用户DAO */ @Autowired private UserDAO userDAO; /** 标识生成器 */ @Autowired private IdGenerator idGenerator;
/** 参数相关 */ /** 可以修改 */ @Value("${userService.canModify}") private Boolean canModify;
/** * 创建用户 * * @param userCreate 用户创建 * @return 用户标识 */ public Long createUser(UserVO userCreate) { // 获取用户标识 Long userId = userDAO.getIdByName(userCreate.getName());
// 根据存在处理 // 根据存在处理: 不存在则创建 if (Objects.isNull(userId)) { userId = idGenerator.next(); UserDO userCreateDO = new UserDO(); userCreateDO.setId(userId); userCreateDO.setName(userCreate.getName()); userDAO.create(userCreateDO); } // 根据存在处理: 已存在可修改 else if (Boolean.TRUE.equals(canModify)) { UserDO userModifyDO = new UserDO(); userModifyDO.setId(userId); userModifyDO.setName(userCreate.getName()); userDAO.modify(userModifyDO); } // 根据存在处理: 已存在禁修改 else { throw new UnsupportedOperationException("不支持修改"); }
// 返回用户标识 return userId; }
} |
2. 测试用例代码
编写完整的测试用例如下:
3. 资源文件目录
测试用例所涉及的资源文件目录如下:
其中,资源文件内容比较简单,这里就不再累述了。
4. POM文件配置
根项目的pom.xml文件需要做以下配置:
<?xml version="1.0" encoding="UTF-8" ?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> ...
<!-- 属性管理 --> <properties> ... <junit.version>4.13.1</junit.version> <mockito.version>3.3.3</mockito.version> <powermock.version>2.0.9</powermock.version> </properties>
<!-- 依赖管理 --> <dependencyManagement> <dependencies> ... <!-- PowerMock --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${mockito.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>${powermock.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> <version>${powermock.version}</version> <scope>test</scope> </dependency> </dependencies> </dependencyManagement>
<!-- 构建管理 --> <build> <pluginManagement> <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <executions> ... <execution> <id>copy-test-resources</id> <phase>compile</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <encoding>UTF-8</encoding> <outputDirectory>${project.build.directory}/test-classes</outputDirectory> <resources> <resource> <directory>src/test/java</directory> <includes> <include>**/*.txt</include> <include>**/*.csv</include> <include>**/*.json</include> <include>**/*.properties</include> </includes> </resource> <resource> <directory>src/test/resources</directory> <includes> <include>**/*.txt</include> <include>**/*.csv</include> <include>**/*.json</include> <include>**/*.properties</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> </project> |
简要说明如下:
• 在属性配置中,配置了单元测试所依赖的包版本;
• 在依赖配置中,配置了单元测试所依赖的包名称;
• 在构建配置中,配置了编译时需要拷贝目录下的资源文件(如果有其它的资源文件格式,需要在pom中配置添加)。
5. 工具类代码
在上面单元测试用例中,需要使用到一个工具类ResourceHelper(资源赋值类),代码如下:
如果在集团内部,也可以直接导入作者提供的二方工具包:
接下篇:https://developer.aliyun.com/article/1227485?groupCode=java