python - 如何测试python私有方法(是的,我确实有理由对其进行测试)

python - 如何测试python私有方法(是的,我确实有理由对其进行测试),第1张

我正在寻找为python私有方法编写单元测试的最干净方法。

我知道通常您不想测试私有方法,但是我们继承了python文件的巨大庞然大物,需要将其重构为更可维护的模块。我们不了解它的逻辑,但知道它可以工作,因此希望使用TDD来确保我们的重构不会破坏代码,目前90%的代码位于私有方法中,并且该模块对可靠的测试完全是通过黑盒测试进行的。我完全希望我会写一些测试,一旦重构完成,这些测试将被删除,但是现在我希望能够插入一些私有方法来测试它们,以增加我对重构没有破坏关键逻辑的信心当我过渡到更具可维护性(和可测试性)的布局时。

最佳答案:

1 个答案:

答案 0 :(得分:2)

在python中,“私有”方法仅向开发人员签名,它们应为私有,实际上您可以访问每个方法。当您使用两个下划线开头的方法名称时,Python会使用一些“魔术”名称,以使其难以访问。实际上,它没有像其他语言那样强制执行任何操作。

假设我们有以下课程:

class Foo:
 def __bar(self, arg):
     print(arg)
 def baz(self, arg):
     self.__bar(arg)

要访问“专用” __bar方法,请尝试以下操作:

f = Foo()
f._Foo__bar('a')

有关标识符的更多信息,请参见docs

希望这就是您想要的。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复