2016-11-21 79 views
0

我開始嘗試茉莉花,我想使用toThrowError()函數,但我的測試不想成功。使用茉莉花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); 
    } 
); 

而且我的測試失敗,未捕獲TypeError(當我打電話時,我正在嘗試捕捉它)。

回答

1

之前,您應該期待一個函數,調用與null你的函數,拋出一個錯誤。現在你期待調用該函數的結果拋出一個錯誤,這是不會發生的。

expect(() => testService.test(null)).toThrowError(TypeError); 
+0

非常感謝:) –

1
  • 你可能需要拋出這個間諜的錯誤,如here

  • 你期待甚至引發錯誤

    spyOn(foo, "setBar").and.throwError("quux");