在阅读了关于在Python中测试私有方法的内容后,特别是在:How do I unit test the methods in a method object?中引用了接受的答案,似乎最好只测试公共接口。然而,我的班级看起来是这样的:
class MyClass:
def __init__(self):
# init code
def run(self):
self.__A()
self.__B()
self.__C()
self.__D()
def __A(self):
# code for __A
def __B(self):
# code for __B
def __C(self):
# code for __C
def __D(self):
# code for __D
本质上,我创建了一个类,用于通过函数管道处理一些输入数据。在这种情况下,最好是测试私有函数,而不是测试公共run()
函数吗?最好的方法是什么?
首先,你不是吗?(或者我在这里遗漏了什么?)
但是,如果您必须测试内部内容,则可以始终在
MyClass
中编写测试函数:当然,这不是最优雅的方法,但它只是类底部的几行代码。
或许你应该测试一下
run()
方法。大多数类都有内部方法——在这种情况下,__A()
,__B()
,__C,()
和__D()
中的所有代码是否实际在run()
中并不重要。如果怀疑或发现问题,则可能需要切换到调试器方面并测试专用方法。当Python将实际执行的代码放在一起时,它会对名称进行一些处理。因此,如果在
MyClass
上有一个私有方法__A
,则需要在单元测试中像这样运行它:相关问题 更多 >
编程相关推荐