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.
});