ALB*_*LBI 2 javascript unit-testing promise es6-promise jestjs
我正在尝试使用Jest测试方法...该方法应返回Promise.reject()。
这是我写的代码:
test('testing Invalid Response Type', () => {
const client = new DataClient();
client.getSomeData().then(response => {
console.log("We got data: "+ response);
}).catch(e => {
console.log("in catch");
expect(e).toBeInstanceOf(IncorrectResponseTypeError);
});
expect.assertions(1);
});
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,它会打印“ in catch”,但由于以下异常而失败: 预期将调用一个断言,但收到零个断言调用。
console.log src/data/dataclient.test.js:25
in catch
? testing Invalid Response Type
expect.assertions(1)
Expected one assertion to be called but received zero assertion calls.
at extractExpectedAssertionsErrors (node_modules/expect/build/extract_expected_assertions_errors.js:37:19)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
Run Code Online (Sandbox Code Playgroud)
我通过在块之前添加return语句来解决它。使用return语句,该函数将等待catch块完成..因此将执行期望。
test('testing Invalid Response Type', () => {
const client = new DataClient();
return client.getSomeData().then(response => {
console.log("We got data: "+ response);
}).catch(e => {
console.log("in catch");
expect(e).toBeInstanceOf(IncorrectResponseTypeError);
});
expect.assertions(1);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3480 次 |
| 最近记录: |