测试在对象初始化期间是否调用了某个方法

2024-04-23 20:21:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个超类,它在初始化过程中调用某个独立的方法。差不多

class MasterClass:
    def __init__(self, *args, **kwargs):
        if type(self).__name__ == "SpecificClass":
            call_a_module_method()

我想测试这个名为SpecificClass的类的子类是否会调用call_a_module_method方法


Tags: 方法selfifinit过程deftypeargs
1条回答
网友
1楼 · 发布于 2024-04-23 20:21:37

正如Kevin Lee所建议的,您可以使用isinstance检查,或者,如果出于某些其他原因,您不想在测试中直接检查类,那么可以选择使用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)

相关问题 更多 >