是否有一个内置的mock对象可以传递给Python单元测试



我通常在单元测试期间实例化Mock对象。我厌倦了:

  1. 必须键入from unittest.mock import Mock
  2. 然后通过mock = Mock()实例化一个Mock对象

我想知道,pytestunittest.mockpytest-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

最新更新