如何在Jest中进行测试之前配置beforeEach函数?

时间:2018-07-01 09:15:48

标签: javascript unit-testing testing jestjs

在我的React组件测试中,我像这样使用beforeEach

let component;
let configProp;

beforeEach(() => {
  component = shallow(<MyComponent config={configProp} />);
});

现在,我想在测试中更改configProp变量。像这样:

let component;
let configProp;

beforeEach(() => {
  component = shallow(<MyComponent config={configProp} />);
});

// runs before beforeEach for the next test
beforeNext(() => {
    const config_1 = {...};
    configProp = config_1;
});

test('config_1', () => {
  // component now has config=config_1
  expect(component.find({config: config_1}).exists());
});

像这样可能吗?还是我们必须在每个测试中分别shallow(<MyComponent />)

现在,我正在使用it块来更改下一个功能的配置。这是合法的吗?像这样:

it('changes configProp', () => {
    const config_1 = {...};
    configProp = config_1;
});

test('config_1', () => {
  expect(component.find({config: config_1}).exists());
});

1 个答案:

答案 0 :(得分:1)

您可以在测试中的组件上设置新的道具:

test('config_1', () => {
  component.setProps({ config: configProp });
  ...
})