测试在对象初始化期间是否调用了某个方法 Python
Test if a certain method is called during an object initialization Python
我有一个superclass在它的初始化过程中调用了某个独立的方法。像
class MasterClass:
def __init__(self, *args, **kwargs):
if type(self).__name__ == "SpecificClass":
call_a_module_method()
我想测试这个 class 的一个名为 SpecificClass
的子 class 是否会调用 call_a_module_method
方法。
正如 Kevin Lee 所建议的那样,您可以使用 isinstance
检查,或者,如果出于某些其他原因您不想在测试中直接检查 class,则可以使用 mock:
import unittest
from mock import patch
@patch('module_name.call_a_module_method')
def test_method_called(self, mock):
instance = SpecificClass()
self.assertTrue(mock.called)
我有一个superclass在它的初始化过程中调用了某个独立的方法。像
class MasterClass:
def __init__(self, *args, **kwargs):
if type(self).__name__ == "SpecificClass":
call_a_module_method()
我想测试这个 class 的一个名为 SpecificClass
的子 class 是否会调用 call_a_module_method
方法。
正如 Kevin Lee 所建议的那样,您可以使用 isinstance
检查,或者,如果出于某些其他原因您不想在测试中直接检查 class,则可以使用 mock:
import unittest
from mock import patch
@patch('module_name.call_a_module_method')
def test_method_called(self, mock):
instance = SpecificClass()
self.assertTrue(mock.called)