我知道如何在Mocha中做到这一点,但想知道如何与茉莉。我试过了
describe('test promise with jasmine', function() {
it('expects a rejected promise', function() {
var promise = getRejectedPromise();
// return expect(promise).toBe('rejected');
return expect(promise.inspect().state).toBe('rejected');
});
});
但是,状态始终为pending
,当然,测试会失败。我在网上找不到任何我可以让它工作的例子。
有没有人能帮我一下?
谢谢。
发布于 2014-11-27 15:19:03
要使用jasmine测试异步代码,您应该使用its async syntax,例如:
describe('test promise with jasmine', function(done) {
var promise = getRejectedPromise();
promise.then(function() {
// Promise is resolved
done(new Error('Promise should not be resolved'));
}, function(reason) {
// Promise is rejected
// You could check rejection reason if you want to
done(); // Success
});
});
发布于 2019-04-24 12:33:26
现在可以使用expectAsync()
了
期待成功:
it('expect result', async () => {
...
await expectAsync(someAsyncFunction(goodInput)).toBeResolved(expectedResponse)
})
预期失败:
it('expect result', async () => {
...
await expectAsync(someAsyncFunction(badInput)).toBeRejectedWith(expectedResponse)
})
发布于 2016-05-15 01:26:18
您可以使用finally
块来测试promise状态:
it('should resolve if auth succeed', (done)=>{
var p = server.login('user', 'password');
p.finally(()=>{
expect(p.isFulfilled()).toBeTruthy();
done();
});
});
您可以使用isFulfilled
检查promise是否已履行,并使用value
方法检查fulfillment值。相应的拒绝方法有isRejected
和reason
。
https://stackoverflow.com/questions/27164404
复制相似问题