编程语言: Java

因为笔者并没有完成过单元测试, 所以本篇内容比较少,也是一些小想法。

笔者在项目开发到了一定阶段的时候,考虑加入单元测试辅助开发。 但是呢,在搜索文档和简单测试的时候发现, 笔者现在的项目结构似乎无法进行单元测试, 所以就没再继续下去。

一些建议

单元测试一定要从项目开始的时候就进行规划, 否则开发中可能会很难再添加单元测试。

笔者搜索到的是一个叫做mockito 的工具, 这个工具不需要建立很长的依赖内容, 它可以让你断言某个方法的执行次数。

但是,这个工具对单例模式似乎不太友好

什么意思呢, 就是说当你的代码中使用大量的单例模式的时候,这个框架可能就不太好用了。 原因是mockito基本上可以mock一个类,接口或者一个实例对象。 当类A依赖类B的时候,你在 mock 类 A 的时候,似乎会自动创建一个类 B。当然,你可以手动 mock 一下类 B,然后赋值给类 A 的属性。

在使用单例模式的时候, 代码中会存在大量类似ConfigManager.getInstance().getShopData(shopGoodsId)的代码,这里是直接使用 ConfigManager 类的单例的, 在执行测试方法的时候可能会出现异常。 如果想把 ConfigManager做成 mock 之后的类,则可能需要做一个接口替换 ConfigManager 的 Instance属性, 而这无疑会破坏单例模式。

其他内容

当你无法使用这类单元测试的框架之后, 你可以试着考虑做一个自动化测试的工具。

如果你使用Jenkins之类的工具 做持续集成, 那么就可以在打包发布之后 执行下自动化测试,并可以考虑生成一个 html 页面的报告。

本文如果有什么错误的地方, 欢迎指正。 😄😄😄