正如之前所说,所谓的自动化测试基础就是指如何设计测试用例和如何编写优秀测试用例,本章的内容就是教会我们如何判断,什么东西应该被测试,什么东西不应该被测试,怎样的测试用例才是干净可靠的测试用例,学会这些,无论使用什么工具,都能够写出优秀的测试代码,同时也为我们编写应用程序代码提供更多的思路,即发现潜在问题的意识,这对于一个程序员来说是非常重要的。
大多数不知如何测试的代码都来源于一个问题:代码不够整洁,未遵循单一责任原则。因此可测试的代码往往与代码整洁性息息相关。
函数大致可以分为两类:查询和指令。
查询函数的工作就是返回一些值,我们测试这些函数就是测试它们的返回值。在设计查询函数的测试用例时,我们只需要确保覆盖到所有条件路径即可。
指令函数涉及到改变某个对象的状态、写数据库、调用网页服务或者发送消息等等。这些函数会给系统带来一些改变。有时候指令函数也会涉及到返回值,例如当我们建立数据库会话时,会返回一个带有唯一 Id 的对象,外部进行持有,等到需要释放时使用。所以在设计指令函数的测试用例时,我们应该测试传入的对象在返回后是否处于正确的状态。如果指令函数有外部依赖(例如写数据库、调用网页服务等等),我们还需要检查它是否调用了正确的方法来访问外部依赖。
什么不应该被测试: