我打算使用 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)