python - 我的项目中的单元测试出了什么问题
问题描述
我有一个电子邮件课程,我需要为其编写一个单元测试课程。
我已经编写了那个 unittest 类,但它没有按预期工作。
实际班级:
def _get_email_status(self, settings, data):
# it's a dictionary
email_param = settings.get_confidential_data()
json_content = Task.build_email_content(
data, email_param.get(0),
"subject", email_param.get(1),
"name", email_param.get(2),
email_param.get(3)
# this method contains the rest URL and hit that url
statuscode = EmailService().send_email(email_param.get(4),
json_content)
return statuscode
测试类:
@patch('main.EmailService')
def test_email(self, mock_service):
test_data = {
'test': 'test'
}
confidential_data = {0: "confidential_details",
1: "confidential_subject",
2: "confidential_name",
3: "confidential3",
4: "confidential4",
5: "confidential5",
6: "confidential6"}
mock_settings = MagicMock()
mock_settings.get_confidential_data = MagicMock(return_value=confidential_data)
mock_settings.keys.return_value.__iter__.return_value = confidential_data.keys()
mock_settings.__getitem__.side_effect = lambda key: confidential_data[0]
param = mock_settings.get_confidential_data
mock_object = MagicMock()
mock_service.return_value = mock_object
print(param) // here getting the confidential dict value properly
json_content = Task.build_email_content(
test_data,
dict(mock_settings).get(0),
dict(mock_settings).get(1),
dict(mock_settings).get(2),
dict(mock_settings).get(3),
dict(mock_settings).get(4),
dict(mock_settings).get(5))
mock_service.send_email(settings, dict(mock_settings).get(5), json_content)
self.assertTrue(mock_service.called)
print(json_content)
mock_settings.get_confidential_data.assert_called_once()
但是 mock_settings.get_confidential_data.assert_called_once()
并self.assertTrue(mock_service.called)
给出错误说这些方法没有被调用。
请帮忙。
解决方案
推荐阅读
- google-analytics - user_id 作为自定义维度未传递给 GA
- python - 如何在 python 中使用单个 try/block 进行多个输入函数进行整数验证?
- node.js - node js执行多个查询并尝试渲染它
- python - “加载指定设备驱动程序时出现未知问题。” 蟒蛇中的错误
- sap - 用于监控的 SAP Net Weaver 管理员控制台
- javascript - 未检查的 lastError 值:错误:来自 onMessage 侦听器的承诺响应超出范围
- javascript - problem related to filtering images with jquery
- c++ - Designing in C++ using object-oriented principles
- asp.net-mvc - How do I display multiple tables in ASP.NET MVC view from a multi-table output stored procedure
- python - 获取属性错误,int 对象没有属性 bird。以前的答案没有解决