2016-09-19 9 views
1

私は約束の結果と私はそれぞれit/pitセクションで約束を解決したいと思います。jest - テスト前に約束を解決する

は、私はこのようななめらかが必要になります。

describe('getData() results test',() => { 
    return getData().then(response => { 
    it('foo',() => expect(response.foo).toEqual(1)); 

    it('bar',() => expect(response.bar).toEqual(2)); 

    it('bar',() => expect(response.bar).toEqual(3)); 
    }); 
}); 

beforeEach使用した場合 - 約束はitセクションの数だけのように解決されます。私は一度それを解決し、次に応答をテストする必要があります。多くのテストケースがありますので、すべてのテストをitセクションに分割したいと思っています

答えて

3

beforeAll関数は、describeのすべての仕様が実行される前に1回だけ呼び出されます。

約束を返すと、Jestはテストを実行する前に約束が解決するのを待つでしょう。

describe('getData() results test',() => { 
    let data = null; 

    beforeAll(() => getData().then(response => { 
    data = response; 
    })); 

    it('foo',() => expect(data.foo).toEqual(1)); 

    it('bar',() => expect(data.bar).toEqual(2)); 

    it('bar',() => expect(data.bar).toEqual(3)); 
}); 
0

JestのドキュメントからAsync tutorialをご覧ください。ドキュメントの

describe('getData() results test',() => { 
    var response; 
    beforeEach(() => { 
     response = getData(); 
    }); 

    it('foo',() => { return response.then(r => expect(r.foo).toEqual(1))}); 

    it('bar',() => { return response.then(r => expect(r.bar).toEqual(2))}); 

    it('bar',() => { return response.then(r => expect(r.bar).toEqual(3))}); 
}); 

キービット:返されるべきテストされている

約束私はあなたがこのようなものが必要と考えています。

+0

お約束は3回解決されます。私は一度それを解決し、応答をテストする必要があります。多くのテストケースがありますので、すべてのテストを 'it'セクションに分割したい – tuchk4

+0

'テストされている約束を返すべきです.'約束のために 'pit'セクションがありました。しかし、今は「使える」ようだ – tuchk4

関連する問題