0
Ich versuche, die Fehlermeldung auf eine abgelehnte Versprechen zu überprüfen, und wenn ich die Nachricht Zeichenfolge im Test falsch macht es noch besteht.Wie teste ich mit Chai-as-Versprochen ein abgelehntes Versprechen und die Fehlermeldung?
MyService.doSomething({ id: 12345 }).should.eventually.be.rejectedWith(TypeError, 'no attr foo defined2');
svc.doSomething = function(thing){
var def = $q.defer();
if (!thing.foo) {
def.reject(new Error('no attr foo defined'));
} else {
def.resolve(thing);
}
return def.promise;
};
Update, es scheint, dass meine Tests nicht ordnungsgemäß funktionieren. Wenn ich es mal aus zurück:
it.only('should error', function(){
// todo this should fail but it just times out
return MyService.doSomething({ id: 12345 }).should.eventually.be.rejectedWith(TypeError, 'no attr foo defined2');
});
svc.doSomething = function(thing){
var def = $q.defer();
if (!thing.foo) {
def.reject(new Error('no attr foo defined'));
} else {
def.resolve(thing);
}
return def.promise;
};
Hier ist der Fehler:
Error: timeout of 4000ms exceeded. Ensure the done() callback is being called in this test.
Ich habe das versucht. Immer noch, wenn ich die Zeichenfolge habe 'no attr foo defined2' – chovy
Und die Rückkehr vor dem Anruf auch! –
Wenn ich addiere, gib es einfach mal aus und sage 'done()' wird nicht aufgerufen. – chovy