Ich versuche, einen Code zu testen, die vor dem Aufruf von http ein Versprechen wartet:
Code:
function foo() {
return Parse.Promise.as(1).then(function(one) {
return $http.get('/bar');
});
}
Test:
describe('foo', function() {
it('gets', function(done) {
$httpBackend.expect('GET', '/bar').respond(200);
foo().then(function(res) {
expect(res.status).to.be.equal(200);
done();
});
$httpBackend.flush();
});
});
Fehler:
Mein Vermutung ist, dass beacuse Parse.Promise
Verzögerungen die Versprechen Auflösung verzögert, und die HTTP-Anfrage wurde nicht gemacht, wenn die $httpBackend.flush
aufgerufen wird.
Gibt es eine Problemumgehung dafür?
Dies wird die Reihenfolge der Ausführung des Codes brechen und Sie könnten unerklärliche Ausfälle bekommen. –
Sie können es nur für einen einzelnen Test deaktivieren, wenn Sie möchten. Es war der einzige Weg, wie ich es schaffen konnte, nachdem ich stundenlang gesucht hatte. – gfpacheco