小编sur*_*uri的帖子

pytest-mock assert_call_with 类函数失败

我打算使用 pytest 和 pytest-mock 来验证 Python 代码。作为一个新手,编写了一个示例代码来验证类上的模拟并看到失败。我想知道出了什么问题。

源代码/主.py

class Main(object):
    def __init__(self, my_var=None):
        self.var = my_var

    def internal_func(self, var=10):
        my_var = var + 20
        return my_var

    def test_func(self):
        val = self.internal_func(20)
        return val + 40
Run Code Online (Sandbox Code Playgroud)

测试/test_main.py

    import pytest
    from pytest_mock import mocker
    from src.main import Main

    def new_func(cls, *args, **kwargs):
        return 2

    def test_main_mock(mocker):
        mocker.patch.object(Main, 'internal_func')
        val = Main().test_func()
        assert Main.internal_func.assert_called_with(20)
Run Code Online (Sandbox Code Playgroud)

它失败并出现以下错误

    ======================================================================================== FAILURES ========================================================================================
    _____________________________________________________________________________________ test_main_mock _____________________________________________________________________________________

    mocker = <pytest_mock.MockFixture object at 0x7f34f490d8d0>

        def test_main_mock(mocker):
            mocker.patch.object(Main, 'internal_func')
            main = …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking pytest

9
推荐指数
1
解决办法
7539
查看次数

标签 统计

mocking ×1

pytest ×1

python ×1

unit-testing ×1