gpt4 book ai didi

Python:如何测试是否使用正确的参数调用构造函数

转载 作者:行者123 更新时间:2023-12-05 07:37:42 26 4
gpt4 key购买 nike

我在 python 中有一个函数,它创建一个 Project 类的实例。如果没有可用数据,则会创建默认实例。 python中的代码类似这样:

def create_project(data):
try:
if data:
return module.Project(data)
else:
return DefaultProject()
except:
raise Exception("Can't create project.')

我想测试 Project 类的构造函数是否使用正确的参数调用。我已经测试过,如果使用以下测试调用构造函数:

@mock.patch('module')
def test_create_to_return_created_project(self, module_mock):
#arrange
project = mock.MagicMock()
module_mock.Project = mock.MagicMock(return_value = project)

#act
result = module.create_project('some_data')

#assert
self.assertEqual(result, project)

现在我想测试一下,Project 类的构造函数是否使用以下代码获取了正确的参数值:

@mock.patch('module')
def test_create_project_with_right_parameter(self, module_mock):
#arrange
mockProject = mock.MagicMock()
module_mock.Project = mockProject

#act
module.create_project('some_data')

#assert
mockProject.__init__.assert_called('some_data')

但是代码导致错误:

Message: 'function' object has no attribute 'assert_called'

有人知道如何测试 Project 类的构造函数是否使用正确的参数调用吗?

最佳答案

您真正想要检查的断言只是在 mock_project,而不是 mock_project __init__

引用链接:Asserting that __init__ was called with right arguments

关于Python:如何测试是否使用正确的参数调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48398127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com