问题标签 [magicmock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在 Python 中对复制的 MagicMock 调用方法?
我想测试一个函数是否__copy__
在传递给它的对象上调用了该方法(使用给定的一组参数)。
由于创建对象需要数据库连接,我想我应该模拟它并将模拟传递给函数进行测试。
但是,它似乎__copy__
正在返回一个不允许在其上调用任意方法的模拟(不确定是 Mock 还是 MagicMock)实例。由于我的代码在新对象上调用方法,因此它返回以下错误。
我怎样才能断言该__copy__
方法已被调用并且仍然让函数的其余部分运行而没有错误?
FWIW,我尝试分配old_obj.__class__.return_value = MagicMock()
,但似乎它没有返回我分配给它的内容(即我也分配... = 'foo'
了但它仍然返回了一个模拟对象)。
例子:
py.test 产生的错误:
python - 每次实例化类时,如何模拟 Python 类以返回唯一的 autospec Mock 实例?
我正在编写一个创建subprocess.Popen
管道的程序。我正在尝试模拟subprocess.Popen
,以便每个调用都返回一个不同的MagicMock
,以便我可以确保在管道中的特定(或所有)进程上调用方法。
我也希望这个模拟基于自动规范,subprocess.Popen
但不断收到一个错误,我不能基于模拟自动规范。
目前我的代码如下:
python - 调用随机方法时,MagicMock 如何避免抛出 AttributeError?
在 Python 中,如果你调用一个不存在的方法,它会抛出一个 AttributeError。前任
在下面的代码中,MagicMock 类没有名为 hello 的函数,或者没有为方法 hello 创建补丁。仍然下面的代码不会抛出 AttributeError
MagicMock 是如何做到这一点的?当调用任何方法(可能未定义)时,如何创建一个可以执行操作的类?
python - Python 单元测试 - 运行时的模拟补丁?
我正在用 python 编写单元测试。
我的代码redis
经常使用,我想模拟一下。我想在全局范围内执行此操作,而不必担心在每次测试中都对其进行模拟,但我认为使用@patch
装饰器是不可能的。
工作测试示例-
我实际上并不需要模拟缓存中的内容,我只是想防止需要清理其他进程正在使用的实际 redis 缓存。我尝试在setUp
-
错误:setUp() 接受 2 个位置参数,但给出了 3 个
除了修补每个测试之外,是否可以在没有装饰器的情况下使用设置?像这样的东西?-
python - Python MagicMock assert_called_once_with 不考虑参数?
我正在设置一个 MagicMock 实例,使用不同的参数调用相同的方法两次,并将我的断言设置为仅验证一组参数。
蟒蛇:3.5.2
我希望这会通过。为什么它忽略这些论点?
python - MagicMocking 熊猫 DataFrame 会导致段错误
以下代码产生分段错误。
我天真地以为这会奏效。这是模拟 DataFrame 的正确方法吗?
python-3.x - pytest 用 boto3 模拟
只是在一般情况下学习 python 模拟并努力使用 Magicmock 和 pytest 和 boto3。
这是我的代码块
这是不起作用的测试:
返回的错误:E AssertionError: Expected 'upload_file' to have been called。
谢谢!
python - 如何让 MagicMock 返回多个值
我正在尝试模拟一个库(matplotlib
为了它的价值),并且遇到了一个问题,即当调用模拟并期望返回一个元组时它会失败。有一个更好的方法吗?
这是收到的错误消息:
pyspark - 使用 MagicMock 修补 PySpark 中的函数不会在 spark 运行中修补
我有一个运行我的PySpark测试的单元测试(使用PyTest ) 。我有正常的创建SQLContext。我想在所有情况下都得到相同的 uuid4,所以我在测试中修补了 uuid4。如果我从测试函数调用,一切都很好。conftest.py
uuid.uuid4()
但是,当我运行也调用 uuid4 的 PySpark 作业时,它没有被修补:
我的 PySpark 函数(简化):
我的测试如下所示:
得到正确的good_uuid
值 - '1-1-1-1',another_good_uuid
但数据帧的 udf 版本的函数仍然调用未修补的 uuid4。
这里有什么问题?它是udf()
函数正在做的事情吗?谢谢!
python - 如何在python3中模拟文件对象
在python2中,我的测试方法中有这个:
我正在迁移到 python3,但我不知道如何进行类似的模拟。我试过了:
我错过了什么?