我的组件中有这个选择器,它的默认状态是 ''(空)
字符串,但是当 change
事件被触发时,用户可以选择三个值中的任何一个是 6、12 还是 24
it("feedform testing the selector feed frequency for value of 6, 12, 24 ", () => {
const addFeedForm = shallow(
<FeedForm
submitForm={() => {}}
setFeedData={() => {}}
formType="add"
feedsubmit={{
status: null,
error: {
formsubmitwarning: "",
feedname: "",
feedurl: "",
feedposttype: "",
feedfrequency: "",
feedpost: "",
feedhashtag: "",
formloginid: ""
}
}}
/>
);
expect(addFeedForm.state().feedfrequency).toEqual("");
addFeedForm.simulate("change");
expect(addFeedForm.state().feedfrequency).toEqual(6 || 12 || 24);
});
现在,在为此编写单元测试用例时,我快速浏览了 Jest 文档,为这三个值中的任何一个找到匹配器,但没有找到匹配器。
我什至尝试过使用 || (or)
toEqual
和 toBe
匹配器中的运算符,但如您所料,它不起作用。有没有办法让它发挥作用,还是我应该一起跳过测试?
注意:我在 Jest 中使用 Enzyme
最佳答案
为了得到期望值中的一个,可以反向比较,用toContain
测试一下方法如
expect(addFeedForm.state().feedfrequency).toEqual('');
addFeedForm.simulate('change');
expect([6, 12, 24]).toContain(addFeedForm.state().feedfrequency)
关于javascript - Jest 匹配器匹配三个值中的任何一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51519041/