2017-09-16 7 views
0

Ich versuche, eine Methode mit Jest zu testen ... Die Methode sollte Promise.reject() zurückgeben. HierErwartete eine Assertion, aber erhielt keine Assertionsaufrufe

ist der Code, den ich schrieb:

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

    }); 

Wenn ich den Test ausführen, druckt es „in Fang“, aber nicht mit dieser Ausnahme: Erwartete eine Behauptung genannt werden, sondern erhielt Null Behauptung Anrufe.

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

Sieht ausgeführt erwarten zu beenden, wie Sie eine passende errortype nicht haben. (Sie haben einen Fehler gefunden, aber es war nicht vom Typ 'FalseResponseTypeError') –

+0

Vielleicht können Sie versuchen,' e' in Ihrer Konsole zu protokollieren, um zu sehen, um welchen Typ es sich handelt –

Antwort

0

Ich löste es durch Hinzufügung von Return-Anweisung vor dem Block. Mit return-Anweisung wird die Funktion für catch-Block warten .. und somit wird ..

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

     }); 
     expect.assertions(1); 
Verwandte Themen