Использовать монгольский сервер MongoDB для модульного тестирования

Я должен реализовать nosetests для кода Python, используя магазин MongoDB. Есть ли библиотека python, которая позволяет мне инициализировать mock-сервер MongoDB в памяти?

Я использую непрерывную интеграцию. Итак, я хочу, чтобы мои тесты не зависели от любого сервера MongoDB. Есть ли способ обмануть сервер mongoDM в памяти для проверки кода независимо от подключения к серверу Mongo?

Заранее спасибо!

3 Solutions collect form web for “Использовать монгольский сервер MongoDB для модульного тестирования”

Вы можете попробовать: https://github.com/vmalloc/mongomock , целью которого является небольшая библиотека для издевательских объектов коллекции pymongo для целей тестирования.

Тем не менее, я не уверен, что стоимость просто запуска mongodb будет запретительной по сравнению с тем, чтобы какая-то насмешливая библиотека была полной.

Я не знаю о Python, но у меня была аналогичная проблема с C #. Я решил просто запустить настоящий экземпляр Mongo на моей рабочей станции, указав на пустой каталог. Это не здорово, потому что код не изолирован, но он быстрый и легкий.

Только уровень доступа к данным фактически вызывает Mongo во время теста. Остальные могут полагаться на mocks уровня доступа к данным. Мне не хотелось притворяться, что Монго стоило усилий, когда я действительно хочу проверить, что взаимодействие с Монго все равно.

Вы можете использовать Ming, у которого есть замена связи pongongo в памяти mongo db.

import ming mg = ming.create_datastore('mim://') mg.conn # is the connection mg.db # is a db with no name mg.conn.somedb.somecol # >> mim.Collection(mim.Database(somedb), somecol) col = mg.conn.somedb.somecol col.insert({'a': 1}) # >> ObjectId('5216ac3fe0323a1218f4e9aa') col.find().count() # >> 1 
Python - лучший язык программирования в мире.