Ich versuche, ein Stück Code zu testen, schrieb ich mit Bluebird verspricht, mit Chai-as-versprochen.Chai-as-Versprochen - scheint nicht mit Bluebird Versprechen zu arbeiten
Meine Methode gibt, ein Versprechen Ablehnung getestet werden, wie folgt:
/**
* Creates a new user entry in the database.
* @param {JSONObject} userData -- User details for creation.
* @return => {boolean} true if succefully created, false otherwise.
**/
createUser: function(userData) {
return Promise.reject();
},
Der Code Test, da dies:
describe('User creation test suite', function() {
it('Should successfully create root user', function(done) {
expect(users.createUser(sampleUsers.raam))
.to.eventually.have.property('id').and.notify(done);
//expect(Promise.resolve({foo:'bar'})).to.eventually.have.property('id').and.notify(done);
});
Eventhough wird das Verfahren absichtlich Fehler, aber der Testfall ist als bestanden gekennzeichnet werden. Hier ist die Ausgabe.
Benutzererstellung Testsuite
✓ Should successfully create root user
Wenn ich mit einem fest codierten String direkt testen wie
expect(Promise.resolve({foo:'bar'})).to.eventually.have.property('id').and.notify(done);
Dann scheint es zu funktionieren. Was mache ich hier falsch?
EDIT Ich fand, dass es nichts mit bluebird Versprechungen oder meiner Methode hatte, die im Test ist. Eine einfache hardcoded Ablehnung funktioniert auch nicht richtig. Das ist ...,
expect(Promise.reject({foo:'bar'})).to.eventually.have.property('id').and.notify(done)
kehrt als bestanden zurück, anstatt zu versagen. Mache ich hier etwas schrecklich falsch?
ich die folgende Version von chai utils bin mit: "devDependencies": { "chai": "^ 3.5.0", "chai-as-versprochene": "^ 5.2.0", "chai-http": "^ 2.0.1" }, –
Nach ein wenig mehr graben, verstehe ich, ich rufe fertig ohne Fehler. Wie kann ich dem ausgeführten Rückruf sagen, dass dieses Versprechen abgelehnt wurde? –