Best Way to Test Promises in Jest

后端 未结 3 943
一向
一向 2020-12-11 00:32

Unless I\'m misunderstanding something, the resolves and rejects (https://facebook.github.io/jest/docs/expect.html#resolves) won\'t be available until vNext. What is the rec

3条回答
  •  借酒劲吻你
    2020-12-11 00:54

    Nowadays you can write it in this way as well: docs

    describe('Fetching', () => {
        const filters = {
            startDate: '2015-09-01'
        };
        const api = new TestApiTransport(); 
    
     it('should reject if no startdate is given', () => {
       expect.assertions(1);
       return expect(MyService.fetch()).rejects.toEqual({
         error: 'Your code message',
       });
     });          
    
    
     it('should return expected data', () => {
       expect.assertions(1);
       return expect(MyService.fetch(filters, null, api)).resolves.toEqual(extectedObjectFromApi);
     });            
    });
    

    Update (06.01.2019)

    Agree that the accepted answer doesn't work correctly as line expect.assertions(1); does all the magic. Link to docs

    expect.assertions(number) verifies that a certain number of assertions are called during a test. This is often useful when testing asynchronous code, in order to make sure that assertions in a callback actually got called.

    So putting this line at the top will control that the specific number of assertions are made by the time when the test is run.

提交回复
热议问题