gpt4 book ai didi

reactjs - 使用 enzyme 测试 react 确认窗口

转载 作者:行者123 更新时间:2023-12-03 14:04:34 26 4
gpt4 key购买 nike

我在 React 中有一个按钮,当用户单击它时,它会打开一个简单的确认窗口。在我添加confirm方法之前,下面的测试是绿色的。添加后确认它是红色的。我需要如何更改测试才能与附加确认一起使用?

react 删除按钮:

const DeleteButton = (props) => {
const handleDelete = () => {
if(confirm("Are you sure?")) {
props.onDelete(props.id)
}
};

return (
<Button className="btn" onClick={handleDelete}>
<i className="fa fa-trash-o"></i>
</Button>
);
};

这是测试(使用 enzyme ):

describe('<DeleteButton />', () => {
it("deletes the entry", () => {
const onDelete = sinon.spy();
const props = {id: 1, onDelete: onDelete};
const wrapper = shallow(<DeleteButton {...props} />);
const deleteButton = wrapper.find(Button);

deleteButton.simulate("click");
expect(onDelete.calledOnce).to.equal(true);
});
});

最佳答案

您可以使用 sinon.stub stub 确认 .

describe('<DeleteImportButton />', () => {
it("simulates delete event", () => {
const onDeleteImport = sinon.spy();
const props = {id: 1, onDelete: onDeleteImport};
const wrapper = shallow(<DeleteImportButton {...props} />);
const deleteButton = wrapper.find(Button);

const confirmStub = sinon.stub(global, 'confirm');
confirmStub.returns(true);
deleteButton.simulate("click");
expect(confirmStub.calledOnce).to.equal(true);
expect(onDeleteImport.calledOnce).to.equal(true);

confirmStub.restore();
});
});

关于reactjs - 使用 enzyme 测试 react 确认窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38348110/

26 4 0
文章推荐: reactjs - Material 用户界面 : How to use DatePickerDialog outside of DatePicker?
文章推荐: reactjs - 如何避免在react/redux容器中与组件(ES6类)绑定(bind)
文章推荐: reactjs - React-grid-layout 示例
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com