unittest.mock、mock、mocker、pytest-mockの違いは何ですか? 質問する

unittest.mock、mock、mocker、pytest-mockの違いは何ですか? 質問する

私は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 が提供するものとしてすでに指摘されています。

おすすめ記事