编写测试友好代码的任何提示?

xia*_*owl 9 python unit-testing

编写测试友好的Python代码是否有任何指导原则?

我相信什么:

  • 一种方法做一件事.
  • 不要使用副作用.

还有其他建议吗?

Alf*_*red 14

TDD

我可以给你编写测试友好代码的最佳提示是首先编写测试.然后编写生产代码(TDD).鲍勃叔叔设计了三个简单的规则来编写TDD:

  1. 除非要进行失败的单元测试通过,否则不允许编写任何生产代码.
  2. 您不得再编写任何单元测试,而不是足以使其失败; 和编译失败是失败.
  3. 您不能再编写足以通过一个失败单元测试的生产代码.

特别是这句话应该沉入:

如果你想到这一点,你就会意识到,如果不编译和执行某些东西,你就根本无法编写很多代码.实际上,这确实是重点.

编写可测试代码

另请阅读谷歌测试专家的" 编写可测试代码 "(适用于java,但也适用于大部分的python).您还应该下载/阅读该页面上的完整PDF.但快速回顾一下:

  1. 构造函数执行实际工作
  2. 挖掘合作者
  3. 脆弱的全球国家和单身人士
  4. 班级太多了


Tra*_*ain 6

阿尔弗雷德的回答很棒,但我要为提问者补充一件事:

如果你想读一本书,那就是关于使用 pytest 在 Python 中进行测试的所有内容,我建议你阅读 Brian Okken 的“使用 pytest 进行 Python 测试:简单、快速、有效和可扩展”。它非常适合您想做的事情,而且是全新的(2017 年 9 月发布)。

  • 我不允许评论与我不同的答案,因为作为新用户的声誉很低。这就是为什么我添加了一个正常的答案。 (4认同)

sev*_*cat 5

编写不依赖于其他模型或资源的方法-如果需要访问它们,则应将其传递给该方法。