Ich versuche eine REST-API mit Express und Mungo zu testen, verwende ich Jest und Supertest für die http-Aufrufe; Ich bin auch relativ neu beim Testen mit Javascript.Jest Test Mungo-Modell Instanziierung
Beim Testen einer Erstellungsurl sollte ich nicht sicherstellen, dass die Instantiierung nur mit dem Objekt req.body aufgerufen wird, aber ich bin mir nicht sicher, wie das geht, nachdem ich viel über Unterschiede zwischen Mock-Objekten und Stubs gelesen habe einige der Jest Dokumentation mein letzter Versuch sieht wie folgt aus:
test('Should instantiate the model using req.body', done => {
const postMock = jest.fn();
const testPost = {
name: 'Test post',
content: 'Hello'
};
postMock.bind(Post); // <- Post is my model
// I mock the save function so it doesn't use the db at all
Post.prototype.save = jest.fn(cb => cb(null, testPost));
// Supertest call
request(app).post('/posts/')
.send(testPost)
.then(() => {
expect(postMock.mock.calls[0][0]).toEqual(testPost);
done();
})
.catch(err => {throw err});
});
auch ich würde gerne wissen, wie man manuell den Test auf dem Versprechen Ablehnung scheitern, so dass es wirft nicht die Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.