《unit tesing》读书笔记
封面
本书示例代码均是C#
代码覆盖率
分支覆盖率
单元测试的定义
单元测试的两大派系
参考:https://www.thesunshinelayer.com/p/detroit-vs-london-schools-of-unit
3A模式
Given-When-Then 模式
.NET下的单元测试框架(推荐xUnit或NUnit)
不推荐MSTest,微软自己人都不用 😃
使用Assertion 库,可读性更高
什么是好的单元测试?
理想的单元测试不存在定理(类似CAP理论)
只能在“防止回归” 和 “快速反馈” 之间进行权衡
根据测试金字塔
不同类型的测试,侧重点也不同。
比如,对于端到端测试,我们可以接受速度慢点,但要尽可能的要“防止回归”
黑盒测试 vs 白盒测试
Test Double
Mock vs Stub
hexagonal architecture
三种测试风格
output-based style(函数式)
state-based style (影响到被测试类的状态 或者 协同测试类的状态,甚至外部依赖的状态,比如数据库,文件系统等)
communication-based style
项目中四种类型代码
Trivial code shouldn’t be tested at all
As for controllers, you should test them briefly