异步匹配器对作为承诺且返回承诺的实际值进行操作。
大多数异步匹配器将无限期地等待承诺解决或拒绝,如果永远不会发生这种情况,将导致规范超时。如果您希望在调用匹配器时已经解决或拒绝了承诺,您可以使用async-matchers#already
修改器以更快的速度获取更有帮助的消息。
注意:规范必须等待每个异步匹配器产生的结果,返回匹配器返回的承诺,或返回由匹配器返回的承诺派生的承诺。否则匹配器将在规范完成之前进行评估。
示例
// Good
await expectAsync(aPromise).toBeResolved();
// Good
return expectAsync(aPromise).toBeResolved();
// Good
return expectAsync(aPromise).toBeResolved()
.then(function() {
// more spec code
});
// Bad
expectAsync(aPromise).toBeResolved();
成员
already :async-matchers
如果实际情况处于挂起状态,请尽快失败。否则评估匹配器。
类型
- 自
- 3.8.0
示例
await expectAsync(myPromise).already.toBeResolved();
return expectAsync(myPromise).already.toBeResolved();
not :async-matchers
反转遵循此expectAsync
的匹配器
类型
示例
await expectAsync(myPromise).not.toBeResolved();
return expectAsync(myPromise).not.toBeResolved();
方法
(async) toBePending()
期望一个承诺处于挂起状态,即该承诺既没有解决也没有拒绝。
- 自
- 3.6
示例
await expectAsync(aPromise).toBePending();
(async) toBeRejected()
期望承诺被拒绝。
- 自
- 3.1.0
示例
await expectAsync(aPromise).toBeRejected();
return expectAsync(aPromise).toBeRejected();
(async) toBeRejectedWith(expected)
期望承诺被拒绝,其值与期望相等,使用深度相等比较。
参数
名称 | 类型 | 说明 |
---|---|---|
预期 |
对象 | 预期拒绝 Promise 的值 |
- 自
- 3.3.0
示例
await expectAsync(aPromise).toBeRejectedWith({prop: 'value'});
return expectAsync(aPromise).toBeRejectedWith({prop: 'value'});
(async) toBeRejectedWithError(expectedopt, messageopt)
预期 promise 会以与预期匹配的值被拒绝
参数
名称 | 类型 | 属性 | 说明 |
---|---|---|---|
预期 |
错误 | <可选> |
抛出的对象需要为 |
消息 |
RegExp | String | <可选> |
要设置在抛出的 |
- 自
- 3.5.0
示例
await expectAsync(aPromise).toBeRejectedWithError(MyCustomError, 'Error message');
await expectAsync(aPromise).toBeRejectedWithError(MyCustomError, /Error message/);
await expectAsync(aPromise).toBeRejectedWithError(MyCustomError);
await expectAsync(aPromise).toBeRejectedWithError('Error message');
return expectAsync(aPromise).toBeRejectedWithError(/Error message/);
(async) toBeResolved()
预期 promise 得到解决。
- 自
- 3.1.0
示例
await expectAsync(aPromise).toBeResolved();
return expectAsync(aPromise).toBeResolved();
(async) toBeResolvedTo(expected)
预期 promise 得以解决,以与预期相等的值,使用深度相等比较。
参数
名称 | 类型 | 说明 |
---|---|---|
预期 |
对象 | 预期 promise 要得以解决的值 |
- 自
- 3.1.0
示例
await expectAsync(aPromise).toBeResolvedTo({prop: 'value'});
return expectAsync(aPromise).toBeResolvedTo({prop: 'value'});
withContext(message) → {async-matchers}
为 expectAsync
添加一些内容
参数
名称 | 类型 | 说明 |
---|---|---|
消息 |
字符串 | 当异步匹配器失败时显示的附加内容 |
- 自
- 3.3.0