《Test-Driven Development - A Practical Guide》读书笔记 - 第5章

7章:模拟对象

1.         TDD中可遇不可求,编写测试时竭力追求的是:目标专一的测试(理想情况下每个测试只有一个断言);彼此独立的测试(每个测试都存在预设环境的建立和清除,以便测试可以以任何顺序运行);运行速度快的测试(能频繁地运行测试)。

2.         专一、独立和执行速度快有一定矛盾的地方,因为必须做到合理处理好资源,模拟对象mock object)提供了一种得到证明的成功解决方案。在很难或者不可能为某种难以处理的资源创建需要的状态或存取资源受到限制时使用。

3.         模拟对象背后的思想就是创建轻量级可控制的对象来代替为了编写测试而需要使用对象。模拟对象还能够让你指定和测试你的代码与模拟对象本身之间的交互。

4.         抽取接口是模拟对象常用的方式。

5.         模拟对象有助于保持设计的松散耦合(针对接口为中心,消除依赖对象内部实现);检查代码使用另一个对象是否得当(可以在模拟对象中设定期望值(expectation));由内而外利用TDD(通过在模拟对象忠设定返回值,可以为正在开发的代码提供特定的信息);可以让测试进行得更快(避免了真实连接资源的情况);更容易开发与硬件设备远程系统等难处理的资源进行交互的代码(可以开发出代理层(proxy layer),来隔离实际的资源);推迟必须的类实现(需要花很大精力的类);提倡了基于接口的设计(这样的设计风格值得提倡);鼓励使用组合composition)而不是继承;改进接口(烤修改接口,早早地有机会思考接口并改进);可以测试非同寻常,不大可能出现的例外情况

5.         模拟对象有助于保持设计的松散耦合(针对接口为中心,消除依赖对象内部实现);检查代码使用另一个对象是否得当(可以在模拟对象中设定期望值(expectation));由内而外利用TDD(通过在模拟对象忠设定返回值,可以为正在开发的代码提供特定的信息);可以让测试进行得更快(避免了真实连接资源的情况);更容易开发与硬件设备远程系统等难处理的资源进行交互的代码(可以开发出代理层(proxy layer),来隔离实际的资源);推迟必须的类实现(需要花很大精力的类);提倡了基于接口的设计(这样的设计风格值得提倡);鼓励使用组合composition)而不是继承;改进接口(烤修改接口,早早地有机会思考接口并改进);可以测试非同寻常,不大可能出现的例外情况

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值