单元测试中的道具未持久(反应测试库)

时间:2020-09-02 14:06:24

标签: reactjs unit-testing react-testing-library

我有一个简单的测试,如下所示:

const { getByTestId } = renderWithStore(
        <ThemeProvider theme={{}}>
          <ButtonContainer {...baseProps} />
        </ThemeProvider>,
      );

renderWithStore的写法如下:

function renderWithStore(
  ui,
  { initialState = {}, store = configureStore, ...renderOptions } = {},
) {
  function Wrapper({ children }) {
    return <Provider store={store}>{children}</Provider>;
  }
  return render(ui, { wrapper: Wrapper, ...renderOptions });
}

// override render method
export { renderWithStore, configureStore };

configureStore就像这样:


const configureStore = (): Store<any> => {
  const client: Middleware = Client(Rest);
  const middlewares = [error(handler), thunk, client, analytics()];
  const enhancer: StoreEnhancer<AppState> = applyMiddleware(...middlewares);

 
  const localEnhancer: StoreEnhancer<AppState> = composeWithDevTools({
    name: 'React Add-In',
    port: 8000,
    secure: true,
    realtime: true,
  })(enhancer as any) as any;


  let localState: string;

  let persistedState = JSON.parse(localState);

 
  const store = createStore<AppState>(
    reducers,
    localState,
    localEnhancer,
  );

  return store;
};

export default configureStore();

我面临的问题是baseProps不断被initialState产生的store值覆盖,我不确定为什么。有没有办法让我可以通过道具进行单元测试?

0 个答案:

没有答案