我正在用 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 在我的单元测试中模拟类和模块?