如何解决当包装在act
我在用户事件github中发现了一个问题,它说它在12.0.1版中已解决,但我在12.1.5版上,并且不断收到错误消息。
import React,{ Fragment } from "react";
import { render,act } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import App from "./App";
test("Gets a code and renders it in a new route",() => {
const { getByLabelText } = render(<App />);
act(() => {
userEvent.type(getByLabelText("Code:"),"12345");
});
expect(getByLabelText("Code:")).toHaveValue("12345");
});
● Gets a code and renders it in a new route
expect(element).toHaveValue(12345)
Expected the element to have value:
12345
Received:
5
解决方法
您的问题可能出在更改处理程序的实现中。我最近遇到了类似的问题,这是我认为可行的方法,而不是真正有效的方法。 More info at this github comment。
function handleChange(ev: FormEvent,key = "") {
ev.preventDefault();
// ✅ Passes
const value = (ev.target as HTMLInputElement).value;
setState(s => {
// ❌ Fails (individual characters instead of progressively built up strings)
// const value = (ev.target as HTMLInputElement).value;
return { ...s,[key]: value };
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。