我有一个看起来像这样的课程:
class myClass(object):
def __init__(self, arg1):
self.arg1 = arg1
self.build_connection()
def build_connection(self):
if self.arg1 != 'foo':
raise Exception('ohno')
<more code that could potentially raise an exception>
我想在类中测试build_connection函数,但我不确定最好的方法/大多数Pythonic方法是做什么的。我意识到我可以创建对象并模拟build_connection中调用的各种函数,但我想知道是否有一种方法可以独立于正在创建的对象来测试build_connection,即我不想做这样的事情:
try:
class = myClass('foo')
except Exception:
self.fail('should have initialized correctly')
我宁愿做更多这样的事情:
myclass = myClass('bar')
# mock various properties in build_connection
myclass.build_connection()
答案 0 :(得分:1)
如果你真的想在没有实例化类的情况下测试build_connection
,那就模拟对象本身。
mock_instance = mock.Mock()
# set up necessary attributes here
myClass.build_connection(mock_instance)
# examine mock_instance