下面是5个单元测试容易放的错误:
1. 与协作模块一起去测试算法。算法逻辑如果能从协作的代码中分离出来,应该是最简单的测试。否则,你得必须通过作业队列之前完成测试。作业队列中只有一部分复杂的逻辑。除非你正在测试是作业队列本身,并分别测试逻辑。无论代码和测试都需要变得容易编写与管理。
2. 太多Mocking. 我们知道通过我们会使用Mocking来隔离依赖,使得它们独立。换句话说,就是使你的代码模块化。当你Mock了整个世界,已没有什么迫使你分得开的部分。那你最终得到的代码是不能孤立地创造任何东西---全部纠结在一起了。
3. 没有使用asserts断言。有时我看到一些测试只是创建了对像,调用了方法。可能完成是一个验证创建或调用循环。但是,没有使用任何的asserts检查。检查代码是否是期待的行为。的确,代码可运行,如果有抛出异常,也没有任何东西可以验证。
4. 使用print打印语句。 我看到一些是从手工测试遗留下来的习惯。你看看它的价值再决定正确与否。但是,所有的检查应该使用断言进行。如果断言失败,你会看到它,因为测试失败。如果测试通过,没有什么应该被打印出来。有时候,开发测试时,它可以用print语句非常有用。但在这种情况下,添加一个标志,并关闭测试中打印,来检查这个标志。