16.1.3 测试四步曲
在深入介绍编写测试的细节之前,先来看看测试驱动开发过程的各个阶段(至少有个版本是这样的)。
(1) 确定需要实现的新功能。可将其记录下来,再为之编写一个测试。
(2) 编写实现功能的框架代码,让程序能够运行(不存在语法错误之类的问题),但测试依然无法通过。测试失败是很重要的,因为这样你才能确定它可能失败。如果测试有错误,导致在任何情况下都能成功(这样的情况我遇到过很多次),那么它实际上什么都没有测试。不断重复这个过程:确定测试失败后,再试图让它成功。
(3)编写让测试刚好能够通过的代码。在这个阶段,无需完全实现所需的功能,而只要让测试能够通过即可。这样,在整个开发阶段,都能够让所有的测试通过(首次运行测试时除外),即便是刚着手实现功能时亦如此。
(4)改进(重构)代码以全面而准确地实现所需的功能,同时确保测试依然能够成功。提交代码时,必须确保它们处于健康状态,即没有任何测试是失败的。测试驱动编程倡导者都是这么说的。我有时会在当前正在编写的代码处留下一个失败的测试,作为提醒自己的待办事项或未完事项。然而,与人合作开发时,这种做法真的很糟糕。在任何情况下,都不应将存在失败测试的代码提交到公共代码库
领取专属 10元无门槛券
私享最新 技术干货