Javascript 更改dom时的反应测试不更新?

Javascript 更改dom时的反应测试不更新?,javascript,reactjs,jestjs,Javascript,Reactjs,Jestjs,我正在尝试测试react中的列表过滤器功能,如下所示: it("should filter the correct champions", () => { const container = document.createElement("div"); document.body.appendChild(container); act(() => { render( <Router> <Cha

我正在尝试测试react中的列表过滤器功能,如下所示:

it("should filter the correct champions", () => {
    const container = document.createElement("div");
    document.body.appendChild(container);

    act(() => {
      render(
        <Router>
          <ChampionList />
        </Router>,
        container
      );
    });

    const championListPre = container.querySelectorAll("tr");

    expect(championListPre.length).toBeGreaterThan(1);

    const search = container.querySelector("input");

    act(() => {
      fireEvent.change(search, { target: { value: "aatrox" } });
    });

    expect(search.value).toBe("aatrox");

    const championListPost = container.querySelectorAll("tr");

    expect(championListPost.length).toBe(1); // This will not be > 1

    unmountComponentAtNode(container);
    container.remove();
  });
handleChange
更改组件的状态


我不知道为什么会发生这种情况,我尝试了不同的方法,但都不起作用。

您的
输入对
输入做出反应,但您正在触发
onChange
。我不相信有任何一种魔法能将某个事件转化为几个相近的意义

所以试试看

  fireEvent.input(search, { target: { value: "aatrox" } });
  fireEvent.input(search, { target: { value: "aatrox" } });