开发者社区> 问答> 正文

测试框架特性导致问题如何解决?

已解决

测试框架特性导致问题如何解决?

展开
收起
游客lmkkns5ck6auu 2022-10-26 18:10:48 262 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    在编写单元测试用例时,或多或少会遇到一些问题,大多数是由于对测试框架特性 不熟悉导致,比如:

    • Mockito 不支持对静态方法、构造方法、final 方法、私有方法的模拟; • Mockito 的 any 相关的参数匹配方法并不支持可空参数和空参数; • 如果为 Mock 方法或 Mock 方法参数不匹配时,会返回默认值(基础类型为 0, 对象类型为 null); • 采用 Mockito 的参数匹配方法或 Argument 的 captor 方法时,其它参数不能直 接用常量或变量,必须使用 Mockito 的 eq 方法包装; • 使用 when-then 语句模拟 Spy 对象方法会先执行真实方法,应该使用 do-when 语句; • PowerMock 对静态方法、构造方法、final 方法、私有方法的模拟需要把对应的 类添加到@PrepareForTest 注解中; • PowerMock 模拟 JDK 的静态方法、构造方法、final 方法、私有方法时,需要把 使用这些方法的类加入到@PrepareForTest 注解中,从而导致单元测试覆盖率 不被统计; • PowerMock 使用自定义的类加载器来加载类,可能导致系统类加载器认为有类 型转换问题;需要加上@PowerMockIgnore({"javax.crypto.*"})注解,来告诉 PowerMock 这个包不要用 PowerMock 的类加载器加载,需要采用系统类加载 器来加载; • 如 果 遇 到 Mock 对 象 静 态 常 量 初 始 化 失 败 ,可以 利 用 注 解 @SuppressStaticInitializationFor 抑制静态常量初始化。

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

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

相关电子书

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