问题标签 [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.

0 投票
1 回答
422 浏览

python - 模拟 Numpy 结构化数组

我试图弄清楚如何模拟一个 numpy 结构化数组并且运气不佳。理想情况下,我想做这样的事情:

我了解如何使用 来模拟单个字典,side_effect但还没有弄清楚如何为任意、嵌套__getitem____setitem__函数执行此操作。

编辑:

这是一些上下文:

这样我就可以self.my_structured_array用一些垃圾值来模拟对象来测试其他逻辑。关键是字典对象实际上与 h5py 库相关联,因此我想模拟它。

0 投票
1 回答
59 浏览

python - 如何在 Python 中模拟这个单元测试?

这是我要测试的方法。在这个测试方法(test_get_all_products)中,我想传入一个产品列表和一个由 dal 标识的 DB 调用的模拟响应。

这是我的测试

但是当我断言来自模拟对象的 products[0]['termMonths'] == 1 时,它失败了,因为 termMonths 实际上是 Mock 对象本身,而不是我期望的返回值(product_sku_cost)。

请帮我弄清楚我在上面做错了什么。

0 投票
1 回答
411 浏览

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

任何想法如何执行用我自己的模拟函数替换映射函数的预期结果?

0 投票
1 回答
1171 浏览

python - MagicMock 基于输入的返回值

我正在尝试将我的测试从 flexmock 重构为 mock。给定来自 flexmock 的以下语法:

如何使用 Mock 重写它?特别是,如何使用 Mock 将返回值固定到特定输入?

0 投票
1 回答
2401 浏览

python - 模拟使用不同参数调用两次的函数

假设我有以下功能:

我正在尝试使用模拟测试此功能,但我无法决定如何测试它。想到的两个选项是使用side_effector assert_has_calls。这是我正在尝试做的事情的总结。

  • 我想确保它func被调用了两次。(完毕)
  • 我想为每个 func调用创建一个模拟(未完成)
  • 我想确保渲染被调用两次。(完毕)
  • 我想确保class_to_mock调用email_one 它是我需要模拟的email_oneand email_two(尚未完成)

测试将是这样的

  • 我希望'''method_for_class'''看起来像这样(未完成)

    class_method.assert_called_once_with(*MOCK EMAIL TWO*, 'text/html')

希望这是有道理的。基本上,我需要两个不同的调用func来确保class_to_mock和中有参数method_for_class

0 投票
1 回答
2478 浏览

python - 部分模拟单元测试`setUp`中的方法

我试图了解模拟/补丁框架,但有一个问题。这是我的简化代码:

本质上,我只想B.g在测试中进行模拟,而不是B.h. 我从https://docs.python.org/3/library/unittest.mock-examples.html#partial-mocking得到了一些想法,但B.g仍然没有被嘲笑。

谢谢!

0 投票
1 回答
352 浏览

python - 在python中模拟变量

我正在尝试模拟一个表示设备状态的变量

在这种情况下,我试图添加一个设备,并且我有以下代码:

我正在做的是嘲笑 self.network.controller.add_node(secure),当我这样做时,我将 self.commandState 更改为正在启动...。我想要完成的是在大约 5 秒后将其更改为 self。 COMMAND_COMPLETED 以成功完成操作。

任何想法如何模拟这个?

0 投票
1 回答
174 浏览

python-2.7 - Python 模拟对象可以返回给定的参数吗?

我正在测试一种向服务器发出 HTTP 请求的 Python 方法。该方法如下所示:

从我的测试中,我想根据数据变量进行断言。我不想接触生产代码(即,我不想让方法显式返回数据)。有没有办法可以模拟 make_request 方法,但将参数作为返回值返回?就像是:

0 投票
1 回答
588 浏览

python - 必须使用 x 实例作为第一个参数调用未绑定的方法 f()(改为获取 str 实例)

这是我的课:

有用:

但我想在测试中使用,我想assert_called_with在上面定义方法:

但后来我得到

如果我将生产代码更改为gc.deleteMachine(gc, 'test')它可以工作。但我们不希望这样,不是吗?

0 投票
0 回答
700 浏览

python - Python 补丁不起作用,没有通话记录

第一次使用 MagicMock,我想我自己都搞糊涂了。

测试一个 django 项目,所以在一个名为的文件中,services.py我有这些重要元素(非常简化,当然还有很多位)::

我想测试当send_success_attempt_email被调用时,get_template用正确的参数调用。所以我用补丁写了一个测试:

打印0call_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),但它并没有减轻它。

我知道我一定有一个根本性的误解。它是什么?