我正在使用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);
使用此代码,组件会错过渲染,然后测试失败
有人认为缺少渲染器吗?