问题标签 [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 回答
75 浏览

python - 修补 2 个对象时,第二个返回第一个修补值

我正在为我必须修补 2 个对象的功能之一编写 UT。

这给出了错误:

当我访问第二个参数时,意味着mock_gridfs它为什么返回Mock对象MongoClient

0 投票
1 回答
74253 浏览

python - Python 返回 MagicMock 对象而不是 return_value

我有一个a.py包含两个类AB.

我想通过模拟method_b在课堂B上进行单元测试A。以下是testa.py用于此目的的文件内容:

我希望得到Mocked A输出。但我得到的是:

我在哪里做错了?

0 投票
2 回答
23020 浏览

python - 在python中打开模拟文件

我正在尝试模拟打开文件,所有示例都表明我需要

但我不断得到

我知道补丁需要完整的虚线路径open,但我不知道它是什么。事实上,我什至不确定这是否是问题所在。

0 投票
1 回答
154 浏览

python - Python模拟参数

我有一些调用 HTTP 请求的代码,我想对一个负面案例进行单元测试,它应该为 404 响应引发特定异常。但是我试图弄清楚如何模拟参数,以便它可以HTTPError在调用函数中引发副作用,模拟对象似乎创建了一个可调用函数,它不是它接受的参数,它只是一个标量值。

0 投票
1 回答
79 浏览

python - 为什么补丁库的行为会根据值的导入方式而改变?

库中的patch函数mock对事物的导入方式很敏感。为什么我不能只使用最初定义函数的完全限定名称,而不管它是如何在其他模块中导入的,有什么深层次的原因吗?

使用“模块导入”工作正常

补丁示例.py:

内部.py:

运行python patch_example.py只是输出成功。

但是,更改导入可能会产生非常严重的后果

使用模块别名仍然有效

但是,直接导入符号需要您更改完全限定名称。

直接导入,inner.inner作为完全限定名称。

生产

如果我将完全限定路径更新为patch_example.inner,补丁仍然失败。

不过,使用__main__.inner我的完全限定名称修补正确的东西。

打印“成功”

那么,为什么当from inner import inner使用原始符号的完全限定名称inner.inner或使用主 python 模块的名称而不是使用 inner 导入时,我不能修补它的值__name__

在 OS X 上使用 Python 2.7.12 测试。

0 投票
2 回答
25284 浏览

python - Mock entire python class

I'm trying to make a simple test in python, but I'm not able to figure it out how to accomplish the mocking process.

This is the class and def code:

And this is my test for the execute function:

Since the execute method try to make a connection, I need to mock that, I don't want to make a real connection, just return something mock. How can I make that? I'm used to do testing in Java but I never did on python..

0 投票
2 回答
462 浏览

python - pytest:模拟返回具有特定属性的模拟

我发现我经常在测试中一次又一次地使用相同的模式:

它将用于测试(带有补丁)该类型的代码:

有什么办法可以使“双重模拟”的东西更短吗?

0 投票
1 回答
114 浏览

django - MagicMock 没有在 django 信号中调用

我有一些模型

用测试

但是 pre_save 信号实际上正在发出并点击提供的 url,并没有得到模拟响应

我相信这与 ; 的范围有关patch。但是,我不确定如何解决它。

0 投票
2 回答
687 浏览

python - 如何在 Easymock 中模拟多个返回值

我是一个 python 新手,正在尝试模拟 process.communicate 方法,但我不知道如何从模拟中返回多个值。我接近它的方式是

我收到的错误消息是:

有人可以指出我在做什么错吗,我尝试过使用和不使用方括号和花括号返回。

0 投票
1 回答
198 浏览

python - 模拟python类字典

我对python相当陌生。我正在尝试使用模拟来编写单元测试。这是代码的模式。

我想为 func1 编写一个单元测试。

我将如何使用模拟来模拟cl().meth1(v)