我按如下方式设置了我的包装器:
const wrapper = shallow(<Uploads
availableTemplates={[]}
filters={{ commodity: '' }}
actions={{
SetFilter: (e) => { wrapper.setProps({ filters: e }); }
}}
/>);
以下测试的目标是将'checked'的无线电值从其默认值false更改为true:
const input = wrapper.find('input').at(0);
input.simulate('change', { target: input.props() });
expect(wrapper.find('input').at(0).node.props.checked).toEqual(true);
不用多说,这是我的问题: 当我在这下面创建一个测试以检查无线电的默认值(应该是假的)时,我会回来。据推测,这是因为我早期将其改为真。有没有办法在每次后续测试时将输入重置为默认状态?
expect(wrapper.find('input').at(0).node.props.checked).toEqual(false);
当然,我可以将此测试移到另一个测试之上,但我很好奇为什么会发生上述情况。
答案 0 :(得分:0)
上面的原因似乎是我每次都在测试包装器的相同实例。因此,当我将值更改为true时,将继续通过其余测试。为了抵消这种情况,我创建了一个getWrapper函数,我每次都调用它来获取包装器的新实例:
if params[:search]
@sheets = Sheet.search(params[:search]).order("created_at DESC")
else
@sheets = Sheet.all.order("created_at DESC")
end
在测试中:
const getWrapper = () => {
const wrapper = shallow(<Uploads
availableTemplates={[]}
filters={{ commodity: '' }}
actions={{
SetFilter: (e) => { wrapper.setProps({ filters: e }); }
}}
/>);
return wrapper;
};