- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究名为 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的实例中的方法。
class A(object):
def do_time_consuming_task(self, timeout):
return True
class B(object):
def __init__(self):
self.a = A()
def do_work(self, timeout):
return self.a.do_time_consuming_task(timeout)
def test_calls(mocker):
# Prepare
obj = B()
#mock_a = mocker.patch.object(A, 'do_time_consuming_task', autospec=True) # Alt. A
mock_a = mocker.patch.object(obj.a, 'do_time_consuming_task', autospec=True) # Alt. B
mock_a.return_value = True
# Exercise
obj.do_work(timeout=100)
obj.do_work(timeout=50)
# Assert
mock_a.assert_has_calls([mocker.call(100), mocker.call(50)])
最佳答案
在 pytest-mock 的作者提供的另一个答案的帮助下设法弄清楚了。
如果使用 alt,则应按如下方式调用断言。 A:
mock_a.assert_has_calls([mocker.call(mocker.ANY, 100), mocker.call(mocker.ANY, 50)])
关于Python pytest-mock assert_has_calls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59839192/
我正在研究名为 pytest-mock ( https://github.com/pytest-dev/pytest-mock ) 的优秀 pytest 插件,现在我正在尝试一些带有 assert_h
代码: from unittest.mock import MagicMock, call mm = MagicMock() mm().foo()['bar'] print(mm.mock_calls
我正在使用模拟Python库中的assert_has_calls。当我做这样的事情时遇到了问题: mocks = mock.Mock() mocks.assert_has_calls([mock.ca
我正在尝试使用 pytest 的 mocker fixture ,特别是 assert_has_calls模拟模块中的函数。 当我运行这个: import os from mock import ca
我是一名优秀的程序员,十分优秀!