问题标签 [flexmock]

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

python - Flexmock一个django模型对象给模型对象?

我正在尝试对 django 模型对象进行 flexmock,但是当我模拟它时,它也给了我该对象本身。那我怎么能嘲笑它呢?

所以我用这样的方法创建了一个模型对象

现在当我试图模拟它时,就像这样

bb 的类型仍然是 django 模型对象,它不是 flexmock 对象。我怎样才能成功地模拟它?

0 投票
1 回答
4566 浏览

python - 模拟不适用于 pytest 和 flexmock

我正在尝试使用 pytest 固定装置来模拟调用open(),然后在测试拆解时将其重置,但由于某种原因,模拟未应用于测试功能。

这是我所拥有的示例:

而且,如果它很重要,这就是它的function_to_test()样子:

如果我使用 xUnit 风格的setup_module()/teardown_module()函数,也会发生这种情况。但是,如果我将模拟代码放在测试函数本身中(我显然不想这样做),那么它就可以正常工作。

我错过了什么?谢谢!

0 投票
1 回答
4087 浏览

python - 模拟用户输入()

我正在尝试为我要使用的 python 脚本模拟用户输入py.test。这是一些代表我要完成的基本代码:

我想模仿用户输入并阅读输出。一个例子可能是这样的:

我还听说这flexmock可能是内置模拟unittest系统的更好替代方案,但我会在这一点上采取任何解决方案。

更新:

我玩了更多,并进行了以下测试:

当我运行 py.test 我得到这个结果:

它确实捕获了适当的标准输出调用作为“你太年轻了”。

0 投票
1 回答
1171 浏览

python - MagicMock 基于输入的返回值

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

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

0 投票
1 回答
20 浏览

python - 如何为模拟后添加的额外功能编写测试用例

创建一个模拟

我已经使用 flexmock 模拟了 Addition 类。现在假设如果我进一步想确保 add 方法只接收整数值。如何为添加的需求编写测试用例。还是我走错了路?

0 投票
1 回答
438 浏览

python - 在 python 模块上使用 flexmock

我一直在互联网上搜索在 python 模块上使用 flexmock 的示例,但所有文档似乎都是针对对象/类的。我想知道是否可以模拟模块返回的一些变量。如果该模块调用另一个模块怎么办?

前任。

所以现在我想通过使用 flexmock 来模拟一些值来分别测试每个函数

那时当对一个对象做同样的事情时,我可以做(比如对象被分配为test_object

some_func该对象内被调用的位置

但是当我尝试对模块做同样的事情时,我不断得到

FlexmockError: <function function1 at some_address> does not have attribute function_inside_function

我想知道是否可以在模块上使用 flexmock,如果可以。如何?

0 投票
0 回答
76 浏览

python - 有没有办法从对象中删除 flexmock?

你已经模拟了这个模块/对象:

有没有办法扭转这个过程,这样当你调用 foo 时,你可以确定你没有遇到一个模拟方法?

这将能够单独测试不同的组件。如果我在哪里命名该方法,我会让它看起来像

但我认为这种方法实际上并不存在。

0 投票
1 回答
155 浏览

python - 如何使用 flexmock 模拟被测模块中的类或对象

我想在我正在测试的周围函数的主体中模拟一个函数调用。我需要使用 flexmock 来做到这一点,或者至少知道它是否不可能。以下面这段代码为例。我有 3 个文件。utils.py 具有单个函数run_command,而 api.py 具有具有单个方法的类 test_api.py。所有这些都是出于演示目的,并不是特别有用,但应该能够描述我的问题

现在 api.py 将使用 util.py 中的 run_command

现在我想为 Api.get_update 编写一个测试,但我不想实际执行 run_command

使用模拟模块,我会像这样编写测试

上述测试按预期工作。run_command它在被调用时实际上并没有执行get_update。它使用模拟版本。现在我想用 flexmock 来做这件事。我不知道这是否可能。只是我正在为一个项目做出贡献,并且所有测试都是用 flexmock 构建的,所以我想遵循相同的模式。不幸的是,我找不到解决类似问题的测试。从这个 SO mocking-functions-with-flexmock-in-python,我想出了这个

上述测试失败。run_commandfrom utils 仍然执行,而不是我的模拟版本。如何使用 flexmock 解决此问题?