我有一个班级:
class MainClass:
def __init__(self, data):
self.data = data
class UserClass:
def some_function():
instance = MainClass("Hello")
现在我想测试是否使用data =" Hello"来调用类MainClass。 如何做到这一点。 我搜索了这个,但无法解决任何问题。
答案 0 :(得分:0)
不管测试类的__init__
方法背后的动机是什么(正如对原始问题的评论所讨论的那样),OP都在问“ 是否通过数据=调用了MainClass类”您好”。这怎么办”,我将回答这个问题。
首先,是的,可以做到。
接下来,该怎么做:
__init__
修补类patch.object
的方法Mock
在代码中:
from mock import Mock, patch
def test_init_called_with_specific_data():
data = "Hello"
with patch.object(MainClass, "__init__", Mock(return_value=None)):
instance = MainClass(data)
instance.__init__.assert_called_with(data)
根据应用程序,您可能希望使用模拟整个类的MagicMock
,其中包括魔术方法(魔术方法是指以双下划线开头和结尾的方法,又称“ dunder”方法)。