我通常在单元测试期间实例化Mock
对象。我厌倦了:
from unittest.mock import Mock
Mock
实例化mock = Mock()
对象。我想知道,pytest
、unittest.mock
、pytest-mock
等是否具有传递Mock
对象的内置方式?
下面是我当前的工作流程:
from unittest.mock import Mock
def test_something() -> None:
mock = Mock()
mock.func()
mock.func.assert_called_once()
Research
我知道使用pytest-mock
,我至少可以通过夹具绕过导入。
def test_something(mocker) -> None:
mock = mocker.Mock()
mock.func()
mock.func.assert_called_once()
我希望能做这样的事情:
def test_something(mock) -> None:
mock.func()
mock.func.assert_called_once()
发布于 2020-09-23 01:40:35
如果您正在使用pytest
,只需制作一个夹具即可。
@pytest.fixture(scope="function")
def my_cool_mock():
mocked = Mock()
yield mocked
def test_something(my_cool_mock) -> None:
my_cool_mock.func()
my_cool_mock.func.assert_called_once()
否则,只需使用pytest-mock
。
https://stackoverflow.com/questions/64019733
复制相似问题