一枚程序员眼中的单元测试(11)

发表于:2017-09-11来源:袁慎建作者:袁慎建点击数: 标签:单元测试
1. 编写更多的单元代码来代替一些不重要的集成测试和UI测试。 2. 使用Mockito、JMock等工具模拟掉依赖。 3. 并行运行测试,前提是让测试之间保持相互独立
1. 编写更多的单元代码来代替一些不重要的集成测试和UI测试。 2. 使用Mockito、JMock等工具模拟掉依赖。 3. 并行运行测试,前提是让测试之间保持相互独立。 4. 让CI服务器去跑更耗时的集成测试和UI测试。 5. 使用契约测试来代替微服务之间的集成测试。

单元测试运行时间是毫秒级别的,如果耗时过长,你就要留意是否存在内存泄漏、资源未释放、依赖过重或者不依赖容器而启动了容器的单元测试。


挥之不去的例外

编写单元测试是一项成本低却价值很高的活动。编写它不会花掉你太多的时间,而运行它更是毫秒间的事情。极限编程推崇者正在使用TDD的方式诠释着单元测试的价值和意义。

它能带给我们信心,改良我们的代码设计,提升我们(DEVs)的声誉,为代码库保驾护航,为高质量的软件交付提供保障。但它终究不是一颗银弹。我们编写单元测试也无非是一种价值的取舍,当它给我们带来的价值低于我们付出的成本时,我们就要保持警惕了,比如思考以下两个问题:

1. 在追求漂亮的测试覆盖率数字100%的时候,思考一下它真有那么高的价值吗?
2. 在做快速的技术Spike(技术调研),思考一下不写测试是不是能让我更快的试错?

我们要理解的是单元测试背后的核心价值,从而做出正确的取舍。我们要做的是编写出有效的单元测试,让它真正地为我们创造价值。

原文转自:http://sjyuan.cc/unit-test-view-from-a-programmer/

...