美文网首页
写测试过程中要先解决编译错误吗?

写测试过程中要先解决编译错误吗?

作者: 袁慎建 | 来源:发表于2020-03-30 11:15 被阅读0次

    采用TDD的方式,我在编写的过程中,发现IDE提示编译错误,我这个时候要不要先去创建一些类或方法,让这些编译错误消失?

    回答这个问题前,先来回顾一下TDD的三顶帽子:

    • 红,添加一个测试
    • 绿,让测试通过
    • 蓝,重构代码(包含功能代码和测试代码)

    我常常会开玩笑说:做TDD其实是在不断切换三顶帽子,先戴红帽子,再戴绿帽子,然后戴蓝帽子。用帽子来打比方,借助了 六顶思考帽[1] 的帽子隐喻。当我们带上一种帽子的时候,就应该清楚自己应该做什么事情。

    TDD借助这些隐喻提倡的是SoC(Seperation of Concerns[2])的思想,每次只聚焦在一件事情上。大量心理学研究证明,人们在足够专注的时候,有可能进入心流状态,而进入心流状态后生产力会大大提升。很多职场专业人士也都在提倡任务排优先级,要排除干扰,不被打断,保持专注,这样才能更高效率的产出。TDD的三顶帽子其实是在帮助我们专注聚焦。

    我们在写测试的时候,戴的是红帽子,这个时候我们应该关注以下几点(按倒逼驱动的方式):

    1. 结果是什么,如何验收?(定义验收标准)
    2. 做了什么事情导致了这样的结果?(定义行为规范)
    3. 什么场景下做的事情?(定义行为条件)

    当我们做完了上面的事情之后,可以摘下红帽子,然后换上绿色帽子,带上绿色帽子,我们应该关注一点:

    1. 如何快速让这一个测试通过?

    回到我们的问题,如果在编写测试的时候,遇到类不存在,就去创建类,遇到方法不存在,就去创建方法。其实是在不断做红、绿切换,此时我们的关注点会被干扰打乱,因为解决编译错误,比如创建不存在的类和方法其实是在写功能代码。

    假如你在写文章的时候,旁边编辑的关于文章发稿的各种问题,你会有什么感受?再比如,你让单核CPU同时干了两个文件复制任务,眼看着是同时进行,实际上CPU在不断切换执行,而切换本身就是一种资源损耗。

    所以,我的建议是写测试过程中,戴着红帽子就专注干红帽子的事情,减少不必要的切换导致的注意力分散,另外你在测试和实现代码不断跳来跳去也是一种思维干扰。

    参考阅读

    1. 六顶思考帽
    2. Seperation of Concerns

    相关文章

      网友评论

          本文标题:写测试过程中要先解决编译错误吗?

          本文链接:https://www.haomeiwen.com/subject/wwimuhtx.html