Вот что я делаю:
Полностью удалите базу данных перед каждым. Вы можете получить доступ к экземпляру mongodb при подключении к mongoose, например: db.db.dropDatabase()
Создайте предварительно сконфигурированные объекты данных для моего домена и сохраните их в импортируемом мной модуле - простые объекты JavaScript. Поэтому у меня есть такие данные, как data.users.vader и data.users.luke, data.products.deathStar и т. Д.
. В своих тестах я использую chaihttp для поиска маршрутов с такими данными:
let user = data.users.vader;
chai.request(server)
.post('/users')
.send(user)
.end((err, result) => {
if (err) {
return callback(err);
}
result.should.have.status(200);
result.body.status.should.eq(enums.status.success);
result.body.data._id.should.be.a('string');
result.body.data.name.should.eq(user.name);
result.body.data.email.should.eq(user.email);
Каждый модульный тест сбрасывает базу данных и создает необходимые данные. Я начинаю так, чтобы каждый тест был независимым.
Вы также можете массово загружать данные, используя batchWriteItem
mongodb позже.
Я также создаю функции, которые можно вызывать в модульных тестах, которые будутданные массовой загрузки с использованием batchWriteItem
- это в основном для запросов на тестирование и т. д.