问题标签 [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 - 模拟 Numpy 结构化数组
我试图弄清楚如何模拟一个 numpy 结构化数组并且运气不佳。理想情况下,我想做这样的事情:
我了解如何使用 来模拟单个字典,side_effect
但还没有弄清楚如何为任意、嵌套__getitem__
或__setitem__
函数执行此操作。
编辑:
这是一些上下文:
这样我就可以self.my_structured_array
用一些垃圾值来模拟对象来测试其他逻辑。关键是字典对象实际上与 h5py 库相关联,因此我想模拟它。
python - 如何在 Python 中模拟这个单元测试?
这是我要测试的方法。在这个测试方法(test_get_all_products)中,我想传入一个产品列表和一个由 dal 标识的 DB 调用的模拟响应。
这是我的测试
但是当我断言来自模拟对象的 products[0]['termMonths'] == 1 时,它失败了,因为 termMonths 实际上是 Mock 对象本身,而不是我期望的返回值(product_sku_cost)。
请帮我弄清楚我在上面做错了什么。
python - 模拟 map_async 函数参数产生 PicklingError
尝试围绕执行map_async()
操作的函数编写一些单元测试。更具体地说,我想确认如果其中一个进程发生异常,某些文件会被清理。示例伪代码,其意图如下。
foo.py
test_foo.py
但是,当我去执行测试时,我得到以下 PicklingError: PicklingError: Can't pickle <class 'mock.MagicMock'>: it's not the same object as mock.MagicMock
。
任何想法如何执行用我自己的模拟函数替换映射函数的预期结果?
python - MagicMock 基于输入的返回值
我正在尝试将我的测试从 flexmock 重构为 mock。给定来自 flexmock 的以下语法:
如何使用 Mock 重写它?特别是,如何使用 Mock 将返回值固定到特定输入?
python - 模拟使用不同参数调用两次的函数
假设我有以下功能:
我正在尝试使用模拟测试此功能,但我无法决定如何测试它。想到的两个选项是使用side_effect
or assert_has_calls
。这是我正在尝试做的事情的总结。
- 我想确保它
func
被调用了两次。(完毕) - 我想为每个
func
调用创建一个模拟(未完成) - 我想确保渲染被调用两次。(完毕)
- 我想确保
class_to_mock
调用email_one
它是我需要模拟的email_one
andemail_two
。(尚未完成)
测试将是这样的
我希望'''method_for_class'''看起来像这样(未完成):
class_method.assert_called_once_with(*MOCK EMAIL TWO*, 'text/html')
希望这是有道理的。基本上,我需要两个不同的调用func
来确保class_to_mock
和中有参数method_for_class
。
python - 部分模拟单元测试`setUp`中的方法
我试图了解模拟/补丁框架,但有一个问题。这是我的简化代码:
本质上,我只想B.g
在测试中进行模拟,而不是B.h
. 我从https://docs.python.org/3/library/unittest.mock-examples.html#partial-mocking得到了一些想法,但B.g
仍然没有被嘲笑。
谢谢!
python - 在python中模拟变量
我正在尝试模拟一个表示设备状态的变量
在这种情况下,我试图添加一个设备,并且我有以下代码:
我正在做的是嘲笑 self.network.controller.add_node(secure),当我这样做时,我将 self.commandState 更改为正在启动...。我想要完成的是在大约 5 秒后将其更改为 self。 COMMAND_COMPLETED 以成功完成操作。
任何想法如何模拟这个?
python-2.7 - Python 模拟对象可以返回给定的参数吗?
我正在测试一种向服务器发出 HTTP 请求的 Python 方法。该方法如下所示:
从我的测试中,我想根据数据变量进行断言。我不想接触生产代码(即,我不想让方法显式返回数据)。有没有办法可以模拟 make_request 方法,但将参数作为返回值返回?就像是:
python - 必须使用 x 实例作为第一个参数调用未绑定的方法 f()(改为获取 str 实例)
这是我的课:
有用:
但我想在测试中使用,我想assert_called_with
在上面定义方法:
但后来我得到
如果我将生产代码更改为gc.deleteMachine(gc, 'test')
它可以工作。但我们不希望这样,不是吗?
python - Python 补丁不起作用,没有通话记录
第一次使用 MagicMock,我想我自己都搞糊涂了。
测试一个 django 项目,所以在一个名为的文件中,services.py
我有这些重要元素(非常简化,当然还有很多位)::
我想测试当send_success_attempt_email
被调用时,get_template
用正确的参数调用。所以我用补丁写了一个测试:
打印0
出call_count
, 并吐出
我已经看到一个常见的陷阱是修补错误的实例,但我已经尝试了补丁的许多变体(例如,@patch('services.get_template')
),但是虽然这改变了错误(nose.proxy.EncodeError: Can't pickle <class 'unittest.mock.MagicMock'>: it's not the same object as unittest.mock.MagicMock
),但它并没有减轻它。
我知道我一定有一个根本性的误解。它是什么?