У меня есть компонент ввода, который принимает метод prop и вызывает его, когда пользователь что-то вводит. Сам код работает так, как ожидалось, но по некоторым причинам тест не проходит. Он думает, что метод prop не был вызван. Почему это происходит? Для тестирования я использую Jest и react-testing-library.
И второй вопрос. В реальном приложении моя идея состоит в том, чтобы проверить параметры, которые были переданы этому методу prop. Считается ли это тестированием реализации (я знаю, что должен это проверить)?
Input.js
export default function Input({ onChange }) {
return <input onChange={onChange} />;
}
Тестовое задание
import React from "react";
import { render, act, cleanup, fireEvent } from "react-testing-library";
import Input from "./input";
describe("Input tests", () => {
afterEach(cleanup);
it("Should call prop function", () => {
const onChange = jest.fn();
const { getByTestId } = render(<Input onChange={onChange} />);
const input = getByTestId("input");
act(() => {
fireEvent.change(input, { target: { value: "Q" } });
});
expect(onChange).toHaveBeenCalled();
});
});