Я написал тестовый пример, который пытается проверить, реагирует ли реакция на все мои элементы правильно.Почему мой метод React onChange не соответствует моей функции стрелки в ферментах содержит testAllMatchingElements
код, который испытывается:
...
eventDateChange(moment, dateType) {
const {handleEventChange} = this.props;
let {event} = this.state;
event[dateType] = moment.format("YYYY-MM-DD HH:mm");
this.setState({event});
handleEventChange(event);
};
render() {
return (
<div className="event-input">
<DateTime
onChange={moment => this.eventDateChange(moment,'startDate')}
inputProps={{placeholder: 'From:'}}
dateFormat="YYYY-MM-DD"/>
</div>
)
}
...
Код испытания:
import React from "react";
import {expect} from "chai";
import {shallow} from "enzyme";
import EventInput from "../../../blog/event/EventInput.jsx";
import DateTime from "react-datetime";
describe('EventInput',() => {
it('is rendering an calendar icon',() => {
const wrapper = shallow(<EventInput/>);
expect(wrapper.containsAllMatchingElements([
<DateTime
onChange={moment => wrapper.instance.eventDateChange(moment,'startDate')}
inputProps={{placeholder: 'From:'}}
dateFormat="YYYY-MM-DD"/>
])).to.equal(true);
});
});
Проблема заключается в том, что мой метод OnChange терпит неудачу испытания. Если я удалю метод onChange из кода и теста, тест будет успешным.
Как вы можете видеть, в тестах я использовал Mocha, Chai, Enzyme.
Из того, что я вижу, все реквизиты одинаковы, за исключением onChange, где я не могу использовать это в тесте и вам нужно изменить его на экземпляр.