我正在使用下面的测试用例在Mocha和Chai中测试服务,并且工作正常。
describe('Google ', () => {
it('POST: Google.', async () => {
const results = await readGoogle.execute(jmsPayload);
console.log(`Final Result : ${results.toString()}`);
});
});
关于上述代码,我需要处理一种情况。实际上,有时我会从服务类readGoogle.execute方法中获得此异常。
TypeError: Cannot read property 'status' of undefined
从readGoogle.execute方法的角度来看,这是预期的。但是我的要求是,即使我从readGoogle.execute await方法中收到错误,也需要通过上述测试用例。
1)我无权访问readGoogle.execute方法,因此无法在该处处理未定义的检查。只能在我的测试用例中做任何事情。
2)我尝试在return true,
以上的'it'
中使用,但仍然无法通过测试。
3)我也尝试过,assert(true); it
中的内容,但测试用例仍然失败。
任何人都可以向我提出一些想法,让我始终可以通过上述test_case(即使在成功和失败的情况下)?
先谢谢了。
答案 0 :(得分:0)
据我了解,您已经使用上述的 readGoogle.execute 调用进行了测试,由于它是外部资源/ api,因此有时会出现异常,这是正确的行为。
在这种情况下,我建议将此调用包装在try块中。
describe('Google ', () => {
it('POST: Google.', async () => {
try {
const results = await readGoogle.execute(jmsPayload);
console.log(`Final Result : ${results.toString()}`);
//maybe some other assertion here about result object.
} catch (e) {
assert.equal(e.name, 'TypeError');
}
});
});
或在catch中进行其他声明,以确保这正是您所预期的错误。