问题标签 [python-unittest.mock]

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 回答
273 浏览

python - Python unittest模拟运行程序两次

试图更多地理解 unittest.mock,但不知道为什么它运行程序两次。为简单起见,请考虑文件中的以下代码test.py

当我使用 运行脚本时python test.py,我得到:

为什么它运行代码两次?即使它确实运行了两次,“你好”怎么会被背靠背打印出来,应该像这样打印:

另外,我怎样才能使它只运行一次代码,模拟值为“新测试”?

0 投票
1 回答
105 浏览

python - python unittest - 如何保留已转换为 Mock 对象的函数的副作用?

我想计算一个函数被调用的次数,建议使用 python 补丁允许我调用call_count以及类似的事情assert_not_called来验证这一点。

我的问题是我希望函数像它一样执行,因为它的函数是测试所必需的,而且它是动态数据的,所以我不能简单地对结果进行硬编码。

为了do_some_things()正常工作,shutil.copy 仍然需要执行其原始角色

0 投票
2 回答
1202 浏览

python-3.x - 使用python模拟dbconnection fetchall

我正在尝试模拟fetchall()fromdbconnection光标对象。我正在尝试使用预期返回值的以下代码。但是,它没有返回值。我现在有了答案并编辑了单元测试以包含答案 db.py

测试用例:

我得到了以下断言错误。它返回一个模拟对象而不是预期的返回值。

0 投票
1 回答
574 浏览

python - 导入时模拟全局函数调用

假设我有一个文件a.py名为

现在,如果我想嘲笑乐趣,b()那么unittest.py同时在顶部有 import 语句

from a import b

在导入mod1.a()时将被调用。我如何模拟导入时发生的调用。

0 投票
1 回答
96 浏览

python-3.6 - 模拟函数被调用但 assert_called 测试失败

我有一个像这样的测试:

这里的somemodule.FooClass.foo()内部调用已被嘲笑为someFunk2somemodule2mock_rr

在测试调试中它确实调用了它,因为我打印了一行,someFunk2但是在调用它时测试它 mock_rr.assert_called(),它抛出:

AssertionError: Expected 'mock_2' to have been called.

我尝试了几种使用 patch 和 patch.object 的方法

0 投票
2 回答
3476 浏览

python-3.x - 在 python 中模拟 BigQuery 连接

我在 python 文件中有以下代码。我必须对这个文件进行单元测试。但为了做到这一点,我需要实例化类的对象

上述类还包含其他需要测试的方法。如何在不调用 bigquery API 的情况下模拟每个方法的对象?

0 投票
1 回答
356 浏览

python - 来自导入模块的 Python 模拟函数

如何为以下代码编写单元测试用例。该代码仅返回一个数据库连接。我无法创建真正的数据库连接。所以,我依赖于对象模拟。

文件:code.py

测试代码.py

解决方案

如何模拟在“code.py”中导入的“snowflake.connector”

0 投票
1 回答
3277 浏览

python - Python pytest-mock assert_has_calls

我正在研究名为 pytest-mock ( https://github.com/pytest-dev/pytest-mock ) 的优秀 pytest 插件,现在我正在尝试一些带有 assert_has_calls 的示例。简而言之,我正在测试 B 类的一个实例,更具体地说,该实例如何与 A 类的实例交互(我在其中模拟了“time_sumption_task”方法)。

该示例正在使用 alt。B(见代码中的注释)。我更喜欢alt。A,而是直接mock A类中的方法,而不是mock通过B类的实例(obj)访问的A类实例中的方法。

0 投票
1 回答
585 浏览

python - 在 python 中,如何为使用打开文件的函数编写单元测试?

这是获取版本并使用 open 从文件路径位置读取文件的功能。

0 投票
1 回答
1192 浏览

python-3.x - 有没有办法断言已在 unittest 模拟对象上设置了属性?

在下面的代码中,如果 search 是一个模拟对象,是否可以断言该query属性已设置?或者如果query是模拟对象,有没有办法做到这一点?

到目前为止,我发现 Python unittest.mock 仅支持断言模拟已被称为函数。此外setattr魔术方法不能被模拟,因此search.__setattr__不能用于断言上述内容。