我开始尝试jasmine并且我想使用toThrowError()函数,但我的测试不想成功。
我有一个函数,我抛出一个错误:
test.service.ts
test(list:{}){
if(list == null){
throw new TypeError();
}
else{
// do something...
}
}
我的测试:
it('shall throw an error', inject()
[
TestService
],
(
testService: TestService
) => {
let test = testService.test(null);
expect(test).toThrowError(TypeError);
}
);
我的测试因Uncaught TypeError而失败(当我称之为“我在try catch中执行此操作时)”。
答案 0 :(得分:2)
你应该期望一个用null
调用你的函数的函数抛出一个错误。现在你期待调用函数的结果抛出一个错误,这是不会发生的。
expect(() => testService.test(null)).toThrowError(TypeError);
答案 1 :(得分:1)
你可能不得不像这样here抛出间谍的错误。
你甚至在抛出错误之前都在期待
spyOn(foo, "setBar").and.throwError("quux");