У меня есть тест для Мокко, использующий функцию ожидаемого и супер-тест, который работает просто отлично.Но я не понимаю, как это работает.Я использую экспресс в качестве сервера, наряду с mongodb и mongoose.
Я понимаю, как будет работать тестирование для .get (), это имеет смысл.Учебники Youtube и документация по мокко не смогли дать мне какой-либо реальной идеи.
describe('DELETE for a specific todo', ()=>{
it('should delete a todo', (done)=>{
let id0 = todos[0]._id
request(app)
.delete(`/todos/${id0}`)
.expect(200)
.expect((response)=>{
expect(response.body.todo._id).toBe(id0)
});
.end((err, res)=>{
if(err){
return done(err)
}
Todo.findById(id0).then((todo)=>{
expect(todo).toNotExist();
}).catch((err)=>done(err))
})
});
it('should fail to find ID in db', (done)=>{
request(app)
.delete(`/todos/${new ObjectID()}`)
.expect(500)
.end(done)
});
it('should fail due to invalid ID', (done)=>{
request(app)
.delete('/todos/999')
.expect(404)
.end(done)
});
});
Этот код работает просто найти, модель / коллекция в порядке, но как же мокко тестирует.delete фактически не удаляя что-то из моей базы данных?Создает ли он фиктивную базу данных, а затем запускает на ней упомянутые тесты?Это что-то удаляет, запускает тест, а затем восстанавливает его?Я просто не понимаю, что делает mocha / supertest, когда я использую request (app) .delete (). Я имею в виду, что он ДОЛЖЕН изменять коллекцию, указанную моей моделью, иначе, если это будет невозможно для Todo (который является моделью)имя) для правильной работы ....