0

反応ナビゲーションを使用してアプリのテストを作成しようとしていますが、ルートとパラメーターが正しく読み取られるという問題が発生しています。

次のエラーが表示されます

TypeError: 未定義のプロパティ 'params' を読み取れません

の上const [leadId] = useState(route.params.leadId);

私のコンポーネントは次のようになります

export default function AComponent() {
  const route = useRoute();
  const navigation = useNavigation();
  const dispatch = useDispatch();
  const [leadId] = useState(route.params.leadId);
}

https://callstack.github.io/react-native-testing-library/docs/react-navigation/に従ってみましWarning: React.createElement: type is invalidたが、コンポーネントをラップするときに受け取りました。

私のテストは次のようになります

import React from 'react';
import { Provider } from 'react-redux';
import { NavigationContainer } from '@react-navigation/native';
import { render, fireEvent, cleanup } from 'react-native-testing-library';
import configureMockStore from 'redux-mock-store';

import AComponent from 'components/contact/AComponent';

const mockStore = configureMockStore([]);

describe('<AComponent />', () => {
  let getByTestId, store;

  beforeEach(() => {
    store = mockStore({});

    ({ getByTestId } = render(
      <Provider store={store}>
        <AComponent />
      </Provider>
    ));
  });
});

私のモックは

jest.mock('@react-navigation/native', () => {
  return {
    useNavigation: () => ({ goBack: jest.fn() }),
    useRoute: jest.fn(),
  };
});

コンポーネントのラッピングが間違っているのか、それとも他に何か不足しているのかはわかりません。

どんなアイデアや助けも大歓迎です。

ありがとう。

4

1 に答える 1