python-3.x - 如何在函数python中MagicMock函数
问题描述
我有一个模块A
,其中包含以下两个功能:
def my_func():
my_dict = {"key1":100, "key2": 100}
send_result(dicts=my_dict)
def send_result(dicts):
print(dicts)
我编写了单元测试用例如下:
from unittest.mock import MagicMock
import A
def test_send_results(self, dicts):
self.assertGreater(len(dicts), 0)
def test_my_func(self):
A.send_result = MagicMock(wraps=self.test_send_results)
A.my_func()
当我运行单元测试用例时,尽管 dicts 包含该值,但我遇到了以下错误:
TypeError: test_send_results() missing 1 required positional argument: 'dicts'
解决方案
正如 Anthony 所建议的,使用 patch.object。下面给出一个例子:
import unittest
from unittest import mock
import A
class MyTestClass(unittest.TestCase):
def test_send_results(self, dicts):
self.assertGreater(len(dicts), 0)
@mock.patch.object(self, 'test_send_results')
def test_my_func(self, mock_func):
mock_func.return_value = 'something'
A.my_func()
推荐阅读
- java - 在 Selenium 中,如何将文本发送到文本区域并单击只有样式的 div 元素中的按钮
- python - 来自一系列图像的python 16位灰度视频
- angular - 将数据传递给Angular中的输入属性?
- r - 我正在尝试进行网络抓取,但我在循环中失败了。使用 R
- pyspark - Pyspark 分区最多
- c# - xamarin 表单 - 如何在“删除”按钮单击时从列表视图中获取产品
- ubuntu - 为什么我无法在我的 EC2 实例上克隆我的 GIT 存储库?
- excel - 如何使用java在excel中将图像文件添加为Ole对象
- sharepoint - 使用 sharepoint pnp js 库创建列表 URL 时如何指定列表 URL?
- java - 如果 EditText 字段为空或输入的值等于 0,如何使 Toast 弹出?