Настроить и использовать mockodb mockup server для модульного тестирования - программирование
Подтвердить что ты не робот

Настроить и использовать mockodb mockup server для модульного тестирования

Мне нужно разработать некоторые тесты Junit для Java-кода, используя магазин MongoDB. Есть ли какая-либо инфраструктура/библиотека, которая позволяет мне инициализировать mock-сервер MongoDB в памяти?

(Идея состоит в том, чтобы протестировать только сам код, то есть на любой машине независимо, если MongoDB установлен и запущен).

Спасибо заранее!

4b9b3361

Ответ 1

fongo может быть тем, что вы ищете.

Ответ 2

Мы действительно работаем над такой тестовой системой, и это вполне возможно. В нашем подходе наша тестовая среда расширяет стандартный класс тестов (JUnit в нашем случае, но TestNG кажется более способным), который устанавливает и срывает различные зависимости базы данных с каждым тестом, используя следующие шаги:

Настройка тестового набора

1) Запустите процесс mongod (мы используем ProcessBuilder, сохраняем экземпляр процесса)

Настройка теста:

2) Запустите mongo с конкретным тестовым файлом .js для создания начального состояния данных

Тест

3) Тест на запуск

Тремя опроса

4) База данных Drop

Срыв тестового набора

5) Остановить процесс mongod (process.destroy())

Поскольку запуск и остановка mongod - единственная трудоёмкая вещь, я бы настоятельно предложил сделать это как можно меньше. Предпочтительно один раз для всего набора тестов. Наши материалы еще не закончены, но ранние результаты положительные. Я не думаю, что есть много альтернатив. В момент написания файла нет библиотеки mongo mock, и mongod не имеет встроенного режима.

Ответ 4

Не совсем, вы должны сами делать это в своих слоях приложений. Если вы используете Morphia, вы можете использовать любую фальшивую структуру с вашими уровнями обслуживания, которые вам нравятся (поскольку объекты являются только POJO), но на уровне db/driver нет ничего, чтобы помочь вам.

Многие люди просто используют локального разработчика. экземпляр mongodb с набором тестовых данных, так как он работает так быстро. Я знаю людей, которые загружают тестовые данные для каждого теста, например, копируя базу данных с поддельными/тестовыми данными.

Ответ 5

Как часть настройки тестового адаптера, отбросьте базу данных и заполните ее любыми стандартными тестовыми данными.