测试在对象初始化期间是否调用了某个方法 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)