私はPython開発の初心者で、テストケースを書いています。pytest何らかの行動を模倣する必要がある。グーグルで検索pytestに最適なモックライブラリ、混乱するばかりです。unittest.mock、mock、mocker、pytest-mock を見てきました。どれを使えばいいのかよくわかりません。どなたか、これらの違いを説明して、どれかお勧めいただけませんか?
ベストアンサー1
pytest-mock は mock を包む薄いラッパーです。
mock は Python 3.3 以降です。実際には unittest.mock と同じです。
mocker が別のライブラリであるかどうかはわかりませんが、テストでモックを実行するために pytest-mock によって提供されるフィクスチャの名前としてのみ知っています。
私は個人的にpytestとpytest-mockをテストに使用しており、次のような非常に簡潔なテストを書くことができます。
from pytest_mock import MockerFixture
@pytest.fixture(autouse=True)
def something_to_be_mocked_everywhere(mocker):
mocker.patch()
def tests_this(mocker: MockerFixture):
mocker.patch ...
a_mock = mocker.Mock() ...
...
しかし、これは主にフィクスチャを使用しているためであり、pytest-mock が提供するものとしてすでに指摘されています。