我在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>
);
};
Run Code Online (Sandbox Code Playgroud)
这是测试(使用酶):
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);
});
});
Run Code Online (Sandbox Code Playgroud)
你可以confirm
使用存根sinon.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();
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1701 次 |
最近记录: |