Я пытаюсь проверить состояние if
с помощью реквизита. Это работает нормально, если я передам this.props.thingToTest
, но если я назначу что-то вроде const propsVariable = this.props.thingToTest
и протестирую условие if
, я не получу покрытие кода.
Я пытался передать const в качестве реквизита в моей мелкой обертке или объявить const в тесте, но он все равно его не видит.
Код компонента:
render() {
const propsVariable = this.props.thingToTest;
if (this.props.otherThingToTest === 'test') {
return <Component />;
} else {
if (propsVariable) {
return <OtherComponent />;
}
}
}
Тестовый код:
const props = {
propsVariable: {}
}
it('tests else condition in render method', () => {
const wrapper = shallow(<OriginalComponent {...props} />);
const instance = wrapper.instance();
jest.spyOn(instance, 'render');
instance.render();
expect(instance.render).toHaveBeenCalled();
});
Я ожидаю, что другой случай получит удар и вернет <OtherComponent />
, но это совсем не затронет другой случай.
Если я положу otherThingToTest
в объекте props в моем тесте, он попадет в первый if
вариант отлично, но, поскольку моя другая пропа thingToTest
назначена переменной, он не попадет в случай else и я не уверен, как это проверить.