dso*_*len 5 python unit-testing
我正在寻找为 python 私有方法编写单元测试的最干净的方法。
我知道通常您不想测试私有方法,但是我们继承了一个巨大的 python 文件,我们需要将其重构为更易于维护的模块。我们不明白它的逻辑,但知道它有效,因此希望使用 TDD 来确保我们的重构不会破坏代码,目前 90% 的代码位于私有方法中,并且模块做了太多完全通过黑盒测试进行可靠的测试。我完全希望我会写一些测试,一旦重构完成,这些测试就会被删除,但现在我希望能够插入一些私有方法来测试它们,以增加我对重构没有破坏关键逻辑的信心当我过渡到更易于维护(和可测试)的布局时。
Mac*_*j M 14
在python中,“私有”方法只是向开发人员表明它们应该是私有的,实际上您可以访问每个方法。当你用两个下划线开始一个方法名称时,Python 会使用一些“魔法”来使它更难访问。事实上,它不像其他语言那样强制执行任何操作。
假设我们有以下课程:
class Foo:
def __bar(self, arg):
print(arg)
def baz(self, arg):
self.__bar(arg)
Run Code Online (Sandbox Code Playgroud)
要访问“私有” __bar 方法,请尝试以下操作:
f = Foo()
f._Foo__bar('a')
Run Code Online (Sandbox Code Playgroud)
可以在文档中找到有关标识符的更多信息
希望这是你正在寻找的。
| 归档时间: |
|
| 查看次数: |
3154 次 |
| 最近记录: |