开发者社区> 问答> 正文

测试用例及资源命名如何实现?

已解决

测试用例及资源命名如何实现?

展开
收起
游客lmkkns5ck6auu 2022-10-26 19:20:20 458 0
1 条回答
写回答
取消 提交回答
  • 推荐回答
    1. 测试类命名 按照行业惯例,测试类的命名应以被测试类名开头并以 Test 结尾。比如:UserService (用户服务类)的测试类需要命名为 UserServiceTest(用户服务测试类)。 单元测试类应该放在被测试类的同一工程的“src/test/java”目录下,并且要放在 被测试类的同一包下。注意,单元测试类不允许写在业务代码目录下,否则在编译 时没法过滤这些测试用例。

    2. 测试方法命名 按照行业规范,测试方法命名应以 test 开头并以被测试方法结尾。比如:batchCreate (批量创建)的测试方法需要命名为 testBatchCreate(测试:批量创建), queryByCompanyId ( 根据公司 标 识 查 询 ) 的测试方法需要 命 名 为 testQueryByCompanyId(测试:根据公司标识查询)。 当一个方法对应多个测试用例时,就需要创建多个测试方法,原有测试方法命名已 经不能满足需求了。有人建议在原有的测试方法命名的基础上,添加 123 等序号表 示不同的用例。比如:testBatchCreate1(测试:批量创建 1)、testBatchCreate2 (测试:批量创建 2)……但是,这种方法不能明确每个单元测试的用意。 这里,作者建议在原有的测试方法命名的基础上,添加“With+条件”来表达不同的 测试用例方法。

    1) 按照结果命名 • testBatchCreateWithSuccess(测试:批量创建-成功); • testBatchCreateWithFailure(测试:批量创建-失败); • testBatchCreateWithException(测试:批量创建-异常);

    2) 按照参数命名 • testBatchCreateWithListNull(测试:批量创建-列表为 NULL); • testBatchCreateWithListEmpty(测试:批量创建-列表为空); • testBatchCreateWithListNotEmpty(测试:批量创建-列表不为空);

    3) 按照意图命名 • testBatchCreateWithNormal(测试:批量创建-正常); • testBatchCreateWithGray(测试:批量创建-灰度); • testBatchCreateWithException(测试:批量创建-异常);

    当然,还有形成其它的测试方法命名方式,也可以把不同的测试方法命名方式混用, 只要能清楚地表达出这个测试用例的涵义即可。

    1. 测试类资源目录命名 这里,作者建议的资源目录命名方式为——以 test 开头且以被测试类名结尾。比如: UserService(用户服务类)的测试资源目录可以命名为 testUserService。 那么,这个资源目录应该放在哪儿了?作者提供了 2 个选择: • 放在“src/test/java”目录下,跟测试类放在同一目录下——这是作者最喜欢的 方式; • 放在“src/test/resources”目录下,跟测试类放在同一目录下——建议 IDEA 用 户采用这种方式。

    2. 测试方法资源目录命名 在前面的小节中,我们针对测试方法进行了规范命名。这里,我们可以直接拿来使 用——即用测试方法名称来命名测试目录。当然,这些测试方法资源目录应该放在 测试类资源目录下。比如:测试类 UserServiceTest(用户服务测试类)的测试方法 testBatchCreateWithSuccess(测试:批量创建-成功)的测试资源目录就是 testUserService/testBatchCreateWithSuccess。 另外,也可以采用“测试方法名称”+“测试条件名称”二级目录的命名方式。比如: 测试类UserServiceTest(用户服务测试类)的测试方法testBatchCreateWithSuccess ( 测试: 批 量 创 建 - 成 功 ) 的测试 资 源 目 录 就 是 testUserService/testBatchCreate/success。 这里,作者首推的是第一种方式,因为测试方法名称和资源目录名称能够保持一致。

    3. 测试资源文件命名 在被测试代码中,所有参数、变量都已经有了命名。所以,建议优先使用这些参数 和变量的名称,并加后缀“.json”标识文件格式。如果这些资源文件名称冲突,可 以 添加前 缀 以 示 区 分 , 比 如 : userCreateList 的 资 源 文 件 名 称 为 “userCreateList.json”。 另外,在测试用例代码中,把这些测试资源文件加载后,反序列化为对应的数据对 象,这些数据对象的变量名称也应该跟资源文件名称保持一致。

    4. 测试资源文件存储 在测试资源目录和名称定义好之后,就需要存入测试资源文件了。存储方式总结如 下: • 如果是测试类下所有测试用例共用的资源文件,建议存储在测试类资源目录下, 比如:testUserService; • 如果是测试用例独有的资源文件,建议存储在测试方法资源目录下,比如: testUserService/testBatchCreateWithSuccess; • 如果是某一被测方法所有的测试用例共用的资源文件,建议存储在不带任何修 饰的测试方法资源目录下,比如:testUserService/testBatchCreate; • 如果测试类资源目录下只有一个测试方法资源目录,可以去掉这个测试方法资 源目录,把所有资源文件存储在测试类资源目录下。 注意: 这里的资源文件不光是 JSON 资源文件,但也可以是其它类型的资源文件。

    5. 文件名称过长 由于资源目录名称较长(大概超过 50 个字符),可能会导致 git 检出代码时出现以 下错误: 或者,在添加文件时出现以下错误: 可以通过以下 git 设置参数解决: 当然,测试用例名称和资源目录名称没必要太长,可以进行一些精简使其小于等于 50 个字符。

    6. JSON 资源文件格式 关于 JSON 资源文件是否格式化的建议:不要格式化 JSON 资源文件内容,否则会占 用更多的代码行数,还会导致无法直接进行文本比较。

    以上内容摘自《Java工程师必读手册》电子书,点击https://developer.aliyun.com/ebook/download/7780 可下载完整版

    2022-10-26 20:39:53
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
移动互联网测试到质量的转变 立即下载
给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
F2etest — 多浏览器兼容性测试整体解决方案 立即下载