0

这个 问题类似,我试图模拟连接到 MongoDB 以进行单元测试。所有这些需要模拟的是从数据库中读取数据。下面是我的代码的简化版本。

如何模拟可以测试 MongoAccess 类的数据库?

mongo_stuff.py

Class MongoAccess():
    def __init__(self, configuration: dict):
        self.configuration = configuration

    def _connect():
        self.db = configuration['Database']

    def access_data():
        _connect()
        cursor = self.db.find(configuration['something'])
        return cursor

    def parse():
        cursor = self.access_data()
        for i in cursor:
            #parse and format data into wanted output
        return data

某处_else.py

import from mongo_stuff import MongoAccess

db = MongoAccess(configuration)
data = db.parse()
# do stuff with data

关于 mongomock 的文档不多,是我能找到的唯一示例,但它依赖于在装饰器中列出的服务器信息。

@mongomock.patch(servers=(('server.example.com', 27017),))
def test_increate_votes_endpoint():
  objects = [dict(votes=1), dict(votes=2), ...]
  client = pymongo.MongoClient('server.example.com')
  client.db.collection.insert_many(objects)
  call_endpoint('/votes')
  ... verify client.db.collection
4

0 回答 0