3
Ich habe eine Schaltfläche in React, die ein einfaches Bestätigungsfenster öffnet, wenn der Benutzer darauf klickt. Bevor ich die Bestätigungsmethode hinzugefügt habe, war der folgende Test grün. Nach dem Hinzufügen der Bestätigung ist es rot. Wie muss ich den Test ändern, um mit der zusätzlichen Bestätigung arbeiten zu können?Test React Bestätigungsfenster mit Enzym
Reagieren Schaltfläche Löschen:
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>
);
};
Hier ist der Test (mit Enzym):
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);
});
});
Danke für Ihre Antwort. Der Test gibt immer noch false zurück. Falls Sie sich fragen, um meine Frage zu vereinfachen, habe ich die Import-Referenzen aus meiner Frage entfernt. – Linus
Verwenden Sie einen echten Browser, um Tests auszuführen? Sag mal Karma? Versuchen Sie 'const confirmStub = sinon.stub (global, 'confirm');' stattdessen. Und überprüfen Sie, ob 'confirmStub' tatsächlich aufgerufen wurde. –
Nein Ich führe 'npm test' ohne jeden Browser aus. 'const confirmStub = sinon.stub (global, 'confirm');' hat funktioniert. Danke vielmals! – Linus