内容:
我目前正在使用Python进行一个小项目。我通常使用一些公开的方法来构造我的类,这些方法已记录在案,但主要处理高级概念(类的用户应了解和使用的内容),以及一堆隐藏的(从下划线开始)负责方法的类。复杂或低级别的处理。
我知道测试对于确保代码的信心并确保以后进行的任何修改都不会破坏以前的行为至关重要。
问题:
为了在受信任的基础上构建更高级别的公共方法,我通常会测试私有方法。我发现查找代码修改是否已引入回归以及在何处更容易。这意味着这些内部测试可能会因次要修订而中断,并且需要修复/替换
但是我也知道,单元测试私有方法至少是一个有争议的概念,或者更经常被认为是不好的做法。原因是:仅应测试公共行为(参考)
题:
我确实关心以下最佳做法,并希望了解:
- 为什么在私有/隐藏方法上使用单元测试不好(有什么风险)?
- 当公共方法可以使用低级和/或复杂处理时,最佳实践是什么?
精度:
- 这不是一个如何的问题。Python没有真正的隐私概念,隐藏的方法根本没有列出,但是当您知道它们的名称时就可以使用
- 我从没学过编程规则和模式:我的上一堂课是80年代的...我主要通过尝试和失败以及在Internet上的引用来学习语言(多年来,Stack Exchange是我的最爱)