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

时间:2011-01-17 06:43:25

标签: python unit-testing

是否有编写测试友好的Python代码的指南?

我相信:

  • 一种方法可以做到一件事。
  • 不要使用副作用。

还有其他建议吗?

3 个答案:

答案 0 :(得分:13)

TDD

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

  
      
  1. 除非要制作,否则不允许您编写任何制作代码   失败的单元测试通过。
  2.   
  3. 您不能再编写单元测试了   失败;和编译失败   故障。
  4.   
  5. 您不能再编写任何生产代码   足以让一个人失败   单元测试。
  6.   

特别是这句话应该沉入:

  

如果你想到这一点,你会的   意识到你根本无法写作   很多代码都没有   编译和执行某些事情。   实际上,这确实是重点。

编写可测试代码

同时阅读" Writing Testable Code"来自谷歌的测试专家(适用于java,但也适用于大部分的python)。您还应该下载/阅读该页面上的complete PDF。但快速回顾一下:

  
      
  1. 构造函数执行实际工作
  2.   
  3. 深入研究合作者
  4.   
  5. 脆弱的全球状态&单身
  6.   
  7. 班级太多
  8.   

答案 1 :(得分:5)

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

答案 2 :(得分:1)

阿尔弗雷德的答案很棒,但我会为提问者添加一件事:

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