我可以模拟在Python测试中另一个函数调用中调用的函数返回吗?

乔纳森·雷恩斯

有没有一种方法可以模拟在另一个函数调用中调用的函数返回?例如:

def bar():
    return "baz"

def foo():
    return bar()

class Tests(unittest.TestCase):
    def test_code(self):
        # hijack bar() here to return "bat" instead
        assert(foo() == "bat")

我试过使用,@mock.patch但发现它只允许我模拟正在调用的函数,而不是由于调用其他函数而被调用的函数。

疯狂物理学家

通用补丁

unittest.mock.patch确实做到了我的其他答案开箱即用的建议。您可以根据@patch需要添加任意数量的注释,所选对象将被修补:

from unittest.mock import patch

def bar():
    return "baz"

def foo():
    return bar()

class Tests(unittest.TestCase):
    @patch(__name__ + '.bar', lambda: 'bat')
    def test_code(self):
        assert(foo() == "bat")

在此配置中,功能bar将在test_code完成后恢复如果您希望同一补丁适用于您班级中的所有测试用例,请对整个班级进行注释:

@patch(__name__ + '.bar', lambda: 'bat')
class Tests(unittest.TestCase):
    def test_code(self):
        assert(foo() == "bat")

全球补丁

您也可以unittest.mock.patch.dict在全局名称空间上获得相同的结果:

class Tests(unittest.TestCase):
    @patch.dict(globals(), {'bar': lambda: 'bat'})
    def test_code(self):
        assert(foo() == "bat")

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python中的另一个类可以调用一个函数中返回的内容吗?

来自分类Dev

为什么使用模拟类中另一个函数调用的函数的测试失败?

来自分类Dev

使用Python模拟在重复调用中模拟出一个函数

来自分类Dev

可以从plv8函数中调用另一个模式中的函数吗?

来自分类Dev

我可以从 C# 中另一个类的构造函数调用构造函数吗?

来自分类Dev

您可以从 PostgreSQL 中的另一个函数调用 call perform/do 函数吗?

来自分类Dev

如何获得在另一个函数中调用的函数以返回值?PYTHON

来自分类Dev

从python中的另一个函数调用变量

来自分类Dev

在另一个函数中调用列表 - Python

来自分类Dev

我可以调用具有另一个函数作用域的函数吗?

来自分类Dev

Python从另一个函数调用一个函数中的函数

来自分类Dev

AWS Lambda函数可以从python文件调用另一个普通的python函数吗?

来自分类Dev

我可以将函数调用作为参数传递给另一个函数吗?Python

来自分类Dev

为什么我必须从另一个函数中调用一个函数?

来自分类Dev

调用另一个模拟函数时更改模拟函数的返回值

来自分类Dev

在我的python脚本中调用另一个python函数时遇到importerror

来自分类Dev

在另一个函数中调用JS函数

来自分类Dev

在另一个函数中调用匿名函数

来自分类Dev

在另一个函数中调用被“隐藏”的函数

来自分类Dev

从另一个函数中调用类函数

来自分类Dev

在 Google 测试框架中,如何期待一个函数调用或另一个函数调用?

来自分类Dev

使用我在 Swift 中的另一个函数中调用的函数中的常量

来自分类Dev

可以在类的构造函数内部使用“ new”来调用Java中的另一个构造函数吗?

来自分类Dev

是否可以调用JavaScript中另一个函数中本地定义的函数?

来自分类Dev

在Python中从一个函数调用变量到另一个函数

来自分类Dev

Python从类中的另一个函数调用一个函数

来自分类Dev

Python:从另一个函数中调用一个函数

来自分类Dev

如何在Javascript中测试另一个函数的函数调用计数?

来自分类Dev

如何在Javascript中测试另一个函数的函数调用计数?

Related 相关文章

  1. 1

    Python中的另一个类可以调用一个函数中返回的内容吗?

  2. 2

    为什么使用模拟类中另一个函数调用的函数的测试失败?

  3. 3

    使用Python模拟在重复调用中模拟出一个函数

  4. 4

    可以从plv8函数中调用另一个模式中的函数吗?

  5. 5

    我可以从 C# 中另一个类的构造函数调用构造函数吗?

  6. 6

    您可以从 PostgreSQL 中的另一个函数调用 call perform/do 函数吗?

  7. 7

    如何获得在另一个函数中调用的函数以返回值?PYTHON

  8. 8

    从python中的另一个函数调用变量

  9. 9

    在另一个函数中调用列表 - Python

  10. 10

    我可以调用具有另一个函数作用域的函数吗?

  11. 11

    Python从另一个函数调用一个函数中的函数

  12. 12

    AWS Lambda函数可以从python文件调用另一个普通的python函数吗?

  13. 13

    我可以将函数调用作为参数传递给另一个函数吗?Python

  14. 14

    为什么我必须从另一个函数中调用一个函数?

  15. 15

    调用另一个模拟函数时更改模拟函数的返回值

  16. 16

    在我的python脚本中调用另一个python函数时遇到importerror

  17. 17

    在另一个函数中调用JS函数

  18. 18

    在另一个函数中调用匿名函数

  19. 19

    在另一个函数中调用被“隐藏”的函数

  20. 20

    从另一个函数中调用类函数

  21. 21

    在 Google 测试框架中,如何期待一个函数调用或另一个函数调用?

  22. 22

    使用我在 Swift 中的另一个函数中调用的函数中的常量

  23. 23

    可以在类的构造函数内部使用“ new”来调用Java中的另一个构造函数吗?

  24. 24

    是否可以调用JavaScript中另一个函数中本地定义的函数?

  25. 25

    在Python中从一个函数调用变量到另一个函数

  26. 26

    Python从类中的另一个函数调用一个函数

  27. 27

    Python:从另一个函数中调用一个函数

  28. 28

    如何在Javascript中测试另一个函数的函数调用计数?

  29. 29

    如何在Javascript中测试另一个函数的函数调用计数?

热门标签

归档