Следующая проблема:
У меня есть этот компонент:
const TodoHeader = ({ handleChange, handleSubmit }) => {
return (
<form onSubmit={e => handleSubmit(e)}>
<input
type="text"
onChange={e => handleChange(e.target.value)}
placeholder="your todo.."
/>
</form>
);
};
со следующим тестом:
it("should call the passed in handleSubmit function with the event object", () => {
const handleSubmit = jest.fn();
const wrapper = mount(<TodoHeader handleSubmit={handleSubmit} />);
const form = wrapper.find("form");
console.log(form.debug());
const mockEvent = { target: {} };
form.simulate("submit", mockEvent);
expect(handleSubmit).toHaveBeenCalledWith(mockEvent);
// Why does this work with shallow but not with mount?
});
Это не удастся, потому что функция была вызвана сфактическое событие onSubmit.Хотя я издеваюсь над этим своим предметом.
Когда я делаю то же самое с shallow
вместо mount
, оно пройдет
Я не понимаю, почему.
Вот несколько кодов и ящик с тем же, что и для проверки.
https://codesandbox.io/s/72yl24j59q