React-Redux useSelector测试异常行为

时间:2019-07-24 10:45:41

标签: reactjs react-redux react-hooks

我正在使用react-native-testing-library测试我的应用程序,发现对我来说很奇怪:

这是测试:

正在加载,从false变为true,然后再次为false。 但是当加载再次变为false时,组件不会重新渲染

    const { update, getByTestId, getByText } = render(
      <StoreProvider store={store}>
        <ContactsContainer />
      </StoreProvider>,
    );

    await waitForExpect(() => {
      expect(store.getState().contacts.loading).toEqual(true);
    });

    await waitForElement(() => getByTestId('placeholder'));

    await waitForExpect(() => {
      expect(store.getState().contacts.loading).toEqual(false);
    });

    await expect(
      waitForElement(() => getByTestId('placeholder'), 100),
    ).rejects.toThrow();

const isLoading = useSelector((state: IAppState) => loadingSelector(state));

使用此代码,在测试期间,组件可以正确地重新呈现。

const isLoading = useSelector(loadingSelector);

使用此代码,组件会错过渲染,然后测试失败

有人认为缺少渲染器吗?

0 个答案:

没有答案