如何让代码更可测试?
测试最为经典的三步曲,偏业务一点的说法:
Given 给定什么业务场景下,比如用户登录,正确的用户名和密码
When 用户在系统中产生的行为,比如登录
Then 期望的结果,比如登录成功,用户进入主界面
技术一点的描述,为了方便记忆,有个3A框架:
Arrange 安排,排版,理解为数据组织,数组准备
Act 执行操作,方法调用
Assert 断言,断言结果是否符合预期
任何粒度的测试编写的步骤总结起来就是这三步,三步曲通常不难理解,相比于测试的编写步骤,我建议更多地去思考如何编写有效的单元测试,关于这个话题,可以阅读这本书
《有效的单元测试》。
最后补充一下单元测试的的FIRST原则:
Fast,快
Isolation,隔离
Repeatable,可重复
Self Validation,自我校验,有断言
Timely,编写及时,最好是测试先行
文章转载自袁慎建