我通常在单元测试期间实例化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()
研究
我知道有了pytest-mock
,我至少可以通过mocker
夹具绕过导入。
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()
如果您使用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
。