Posted on:
Last modified:
setup()
和 teardown()
方法。square()
这样的名字,但是在测试用你要用
test_square_of_number_2
这样的名字。IO 依赖主要包括依赖文件和外部数据库。对于依赖文件名作为参数的函数,甚至可以认为是一个非常 差的实践。而且根据单一职责原则,一个方法也不应该做两件事,要么做计算,要么做 IO, 而接受 文件名作为参数就隐含了既要负责打开文件,又要负责处理文件中的数据。
但是不用文件名的话,有时候对于用户来说又不是很方便。建议把分成两个函数,一个只做计算, 另一个既打开文件,又做计算。
虽然使用 mock 的方式可能会提高速度或者更方便一些,但是这样的话又可能和实际生产环境的差异 过大,而且 mock 库也不是那么好找的。
从软件可靠性的角度,测试当然是越完备越好,但是不是每一个软件都是核弹控制器,还是要根据 实际情况折中一下。
只需要按照功能点,把正常和常见的异常情况测试一下就好了。重点还是要先明确功能点有哪些。
按照代码逻辑分支测试,把代码的每一个分支的
都测试到。
在每个 endpoint 上做集成测试。
不要过度测试。给门添加第二把锁会让门更安全一点,但是添加一百道锁并没有任何用,和两把锁是 一样的。加一百把锁的话,抢劫犯可能直接破门而入或者选择走窗户了。但是一百把锁反倒会让主人 进入更加复杂。单元测试也是同样的道理,不可或缺,但是要适可而止。
所以,总的来说,应该添加单元测试,但是要确保:
© 2016-2022 Yifei Kong. Powered by ynotes
All contents are under the CC-BY-NC-SA license, if not otherwise specified.
Opinions expressed here are solely my own and do not express the views or opinions of my employer.
友情链接: MySQL 教程站