2017-09-16 10 views
0

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); 

    }); 

, 그것은 "캐치에서"인쇄 있지만,이 예외와 함께 실패합니다 : 예상 한 주장이라고하지만 제로 주장 통화를 수신하려면 여기를

내가 쓴 코드입니다.

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) 
+0

보인다. (당신은 오류를 잡았지만'IncorrectResponseTypeError' 유형이 아니 었습니다.) –

+0

실제로 어떤 유형인지보기 위해'e'를 콘솔에 기록 할 수 있습니다 –

답변

0

블록 앞에 return 문을 추가하여 해결했습니다. 당신이 일치하는 ERRORTYPE를 가지고 있지처럼 함수가 따라서 실행됩니다 기대 .. 완료 catch 블록을 기다릴 것이다 return 문으로 ..

client.getSomeData().then(response => { 
      console.log("We got data: "+ response); 
     }).catch(e => { 
      console.log("in catch"); 
      expect(e).toBeInstanceOf(IncorrectResponseTypeError); 

     }); 
     expect.assertions(1);