开玩笑 - 在测试前解决承诺

tuc*_*hk4 2 javascript testing jestjs

我想为承诺结果编写测试,并且我不想在每个it/pit部分中解决承诺。

我需要这样的东西:

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));
  });
});
Run Code Online (Sandbox Code Playgroud)

如果使用beforeEach- 承诺将被解决与it部分数量一样多的次数。我需要解决一次,然后测试响应。有很多测试用例所以我想把所有的测试分成it几个部分

tuc*_*hk4 5

beforeAll在运行 describe 中的所有规范之前,该函数仅被调用一次。

当返回 promise 时,Jest 将等待 promise 解决,然后再让测试运行。

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));
});
Run Code Online (Sandbox Code Playgroud)