10|TDD中的驱动(3):何为经典学派?何为伦敦学派?

2022-03-29 徐昊
《徐昊·TDD 项目实战 70 讲》
课程介绍


讲述:徐昊

时长:大小5.04M


你好,我是徐昊。今天我们继续来讨论测试驱动开发中的驱动。
上节课我们讲了四种常用的重构手法,分别是提取方法、内联方法、引入参数和引入字段。并区分了用于高效修改代码的重构手法,和用于消除坏味道以改进架构设计的重构。还介绍了一种架构软件的方法:重构到模式。也就是通过重构将坏味道替换为模式,从而改进软件架构的方式。
重构到模式,或者说 TDD 红 / 绿 / 重构循环中的重构,是在完成功能的前提下以演进的方式进行设计。这是延迟性决策策略,也叫最晚尽责时刻(Last Responsible Moment,LRM)。也就是说,与其在信息不足的情况下做决定,不如延迟到信息更多,或是不得不做出决策的时机再决策。这种策略的重点在于,在保持决策有效性的前提下,尽可能地推迟决策时间。
如果架构愿景不清晰,那么“最晚尽责时刻”让我们不必花费时间进行空对空的讨论,可以尽早开始实现功能,再通过重构从可工作的软件(Working Software)中提取架构。这种方式也被称作 TD...

展开全文
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。

精选留言

  • wenming
    2022-04-01
    思考题我是这么理解的:只要构造 Stub 的时候不对 SUT 的结果产生影响,也就是说,Stub 的存在不会改变测试的效果,只是我们构建夹具(测试上下文)的形式或者说方法有区别,那么整个测试的有效性就能够得到保证
    
    
  • 邓志国
    2022-03-31
    保证测试有效,就得用足够好的测试替身。
    
    
  • aoe
    2022-03-31
    测试入参:伦敦学派中通过“Mock 外层”返回了当前需要的数据,测试时隔离了对外层的依赖,降低了构造测试的难度。 功能验证:使用状态验证 伦敦学派通过“Mock 外层”返回了当前需要的数据,本层功能依然使用状态验证,所以可以保证测试的有效性。 08 09 10 学习笔记 http://wyyl1.com/post/19/06/
    
    
  • 枫中的刀剑
    2022-03-30
    对于伦敦学派,根据第5、6章节的内容,也是主要是通过状态校验来保证测试的有效性。但是有个疑惑点是对于伦敦学派,采用状态验证的方式只能保证单个sut的有效性,而对于更大的功能上下文的有效性是应该没法保证的,所以对于完整功能的有效性验证就只能通过更大的端到端测试来保证吗?

    作者回复: 引入测试替身之后 可以验证更大范围

    
    