0

Python で小さなプロジェクトを開始しており、py.test で単体テストを作成したいと考えています。pymongoモジュールまたはMongoClientクラスにパッチを適用する必要があります。だから私はこのようなことを試しました:

@pytest.fixture(scope='module')
def mock_pymongo(monkeypatch):
    monkeypatch.setattr('pymongo', mongomock)

またはこのようなもの:

@pytest.fixture(scope='class')
def mock_pymongo(monkeypatch):
    monkeypatch.setattr('pymongo.mongo_client.MongoClient', mongomock.mongo_client.MongoClient)

今私がやっている両方のテストで、スコープの不一致エラーが発生します

scopeMismatch: You tried to access the 'function' scoped fixture 'monkeypatch' with a 'module' scoped request object, involved factories
tests/test_1.py:17:  def mock_pymongo(monkeypatch)

適切なツールを使用しているのかもしれませんが、単体テストでクラスとモジュールをモックするためにmonkeypatchを使用する方法はありますか?

4

1 に答える 1