Python Mock没有断言调用

克拉拉马赫

我正在使用模拟库来修补程序中的类,该程序连接到外部资源并发送命令。

这样的结构有点像...

code.py

def make_connection():
    connection = OriginalClass(host, port)
    connection.connect()
    connection.send(param)
    connection.close()

test.py

@mock.path('code.OriginalClass')
def test_connection(self, mocked_conn):
    code.make_connection()
    mocked_conn.assert_called_with(host, port)
    mocked_conn.connect.assert_called_once()
    mocked_conn.send.assert_called_with(param)

第一个assert_Called_with可以完美地工作,但是对模拟类的方法的调用没有通过。我尝试使用patch.object作为装饰器也没有运气。

马丁·彼得斯(Martijn Pieters)

connect()send()方法被称为在返回值第一次调用的; 相应地调整测试:

mocked_conn.return_value.connect.assert_called_once()
mocked_conn.return_value.send.assert_called_with(param)

我通常先存储对“实例”的引用:

@mock.path('code.OriginalClass')
def test_connection(self, mocked_conn):
    code.make_connection()
    mocked_conn.assert_called_with(host, port)
    mocked_instance = mocked_conn.return_value
    mocked_instance.connect.assert_called_once()
    mocked_instance.send.assert_called_with(param)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python Mock没有断言调用

来自分类Dev

在Python中断言没有回溯

来自分类Dev

断言没有方法被调用

来自分类Dev

python ImportError没有导入调用

来自分类Dev

python使用没有外壳的popen或进行断言以提高安全性

来自分类Dev

Python如何断言方法已被调用

来自分类Dev

断言失败时的Python unittest调用函数

来自分类Dev

PHPUnit断言没有调用任何方法

来自分类Dev

AttributeError:“模块”对象没有属性“调用”:Python

来自分类Dev

通过变量或没有括号在python中调用函数

来自分类Dev

如何断言所有断言在python中失败

来自分类Dev

断言是Python中的有效函数

来自分类Dev

带有条件的Python断言

来自分类Dev

断言是Python中的有效函数

来自分类Dev

断言在python中用json字符串调用的模拟函数

来自分类Dev

Python pytest模拟失败,对函数调用断言“置为无”

来自分类Dev

Python:有没有办法在调用writerow()之前更新DictWriter的键(列)?

来自分类Dev

为什么在没有引发异常的情况下杰斯特说有断言调用?

来自分类Dev

如何断言一个字典包含另一个字典,而在python中没有assertDictContainsSubset?

来自分类Dev

没有Python的词性

来自分类Dev

NUnit-断言方法调用在MaxTime内而没有设置时间

来自分类Dev

ImportError:从其他Python脚本调用时,没有名为xmltodict的模块

来自分类Dev

没有调用python logging dictConfig自定义格式化程序

来自分类Dev

Python-SystemError:PyObject调用中没有错误的NULL结果

来自分类Dev

RuntimeError:超过最大递归深度(在我的Python代码中没有显式递归调用)

来自分类Dev

没有名为os.path的模块:bash调用了错误的Python

来自分类Dev

Python-子进程popen并调用相同的错误-没有类型不可迭代吗?

来自分类Dev

从python代码调用shell脚本,没有任何返回值(0)或换行

来自分类Dev

使用函数变量调用类实例时,Python的“ str”对象没有属性“名称”

Related 相关文章

  1. 1

    Python Mock没有断言调用

  2. 2

    在Python中断言没有回溯

  3. 3

    断言没有方法被调用

  4. 4

    python ImportError没有导入调用

  5. 5

    python使用没有外壳的popen或进行断言以提高安全性

  6. 6

    Python如何断言方法已被调用

  7. 7

    断言失败时的Python unittest调用函数

  8. 8

    PHPUnit断言没有调用任何方法

  9. 9

    AttributeError:“模块”对象没有属性“调用”:Python

  10. 10

    通过变量或没有括号在python中调用函数

  11. 11

    如何断言所有断言在python中失败

  12. 12

    断言是Python中的有效函数

  13. 13

    带有条件的Python断言

  14. 14

    断言是Python中的有效函数

  15. 15

    断言在python中用json字符串调用的模拟函数

  16. 16

    Python pytest模拟失败,对函数调用断言“置为无”

  17. 17

    Python:有没有办法在调用writerow()之前更新DictWriter的键(列)?

  18. 18

    为什么在没有引发异常的情况下杰斯特说有断言调用?

  19. 19

    如何断言一个字典包含另一个字典,而在python中没有assertDictContainsSubset?

  20. 20

    没有Python的词性

  21. 21

    NUnit-断言方法调用在MaxTime内而没有设置时间

  22. 22

    ImportError:从其他Python脚本调用时,没有名为xmltodict的模块

  23. 23

    没有调用python logging dictConfig自定义格式化程序

  24. 24

    Python-SystemError:PyObject调用中没有错误的NULL结果

  25. 25

    RuntimeError:超过最大递归深度(在我的Python代码中没有显式递归调用)

  26. 26

    没有名为os.path的模块:bash调用了错误的Python

  27. 27

    Python-子进程popen并调用相同的错误-没有类型不可迭代吗?

  28. 28

    从python代码调用shell脚本,没有任何返回值(0)或换行

  29. 29

    使用函数变量调用类实例时,Python的“ str”对象没有属性“名称”

热门标签

归档