• TDD,从顶向下测试


    我们首先根据最上面的模块,我们称之为A,写好测试用例,却发现我们没有办法在几分钟,甚至半个小时内,去通过这个测试。因为我们需要一些其他的模块,如B和C,我们需要把它们put together。那么我们的开发就陷入了一种反敏捷的方式,我们没有办法得到及时的反馈。但是不是这样的。我们大致已经知道了要有B和C,那么下一步是什么。是在A中描述B和C的接口和功能,并且试图把他们put together,还是想写B和C的测试用例呢?

    我所推介的是前者。那么怎么回答这个难题:我们不能得到关于B和C的反馈,这不是敏捷的。事实上,A作为B和C的客户,已经大致描述了B和C的接口和功能,而且,我们在验证,如何让B和C恰好做它们要做的事情,不多也不少,而且当它们put together的时候,它们可以完成A要的那些工作,不多也不少。那么这个就是关于设计的反馈,如果不从A的角度来思考B和C的功能,那么就有可能造成B和C的功能的泛滥和缺失。

    而在A中描述了我们对B和C的意图之后,下一步是什么?

    我们应该用TDD的方式来开发B和C,让它们满足A的功能和接口通过测试。

  • 相关阅读:
    BZOJ 3809 Gty的二逼妹子序列 莫队算法+分块
    BZOJ 3131 SDOI2013 淘金 数位dp
    BZOJ 4408 FJOI2016 神秘数 可持久化线段树
    [leetcode] Reverse Linked List
    走迷宫问题总结
    [leetcode] Max Area of Island
    [leetcode] All Paths From Source to Target
    [leetcode] Arithmetic Slices
    [leetcode] Move Zeroes
    [leetcode] Linked List Cycle
  • 原文地址:https://www.cnblogs.com/zhengwenwei/p/2541279.html
Copyright © 2020-2023  润新知