2

Jest と React-testing-library を使用して React コンポーネントをテストしています。コンポーネントがコンテキストにアクセスできるように、コンテキスト API プロバイダーを使用してコンポーネントをレンダリングしました。残念ながら、レンダリングされたコンポーネントの外部からアクセスする方法がわかりません。この場合isUserLogged、どのコンポーネントが変化するかに応じて Context にプロパティがあります。しかし、このプロパティの値を変更する方法がわかりません。この場合、どのようにアプローチできますか?Context API のモックが必要な場合、どうすればよいですか?

添付のコードでは、useContext フックを使用して Context にアクセスしようとしています。エラーは、React コンポーネントの外部でフックを使用できないことを示しています。そして、明らかに、Context Provider の外部の Context にアクセスしようとしているので、とにかく機能しません。

import { Provider, Context } from '../../context';

test('Star is not clickable for a non-registered user', () => {
  const { getByTestId } = render(<Provider><Star /></Provider>);
  const isUserLogged = useContext(Context).isUserLogged; // Error.
});
4

2 に答える 2