假设这是我的代码:
import { ProviderMovies } from 'src/Movies/_ContextMovies';
import SearchMovies from 'src/Movies/SearchMovies';
describe('Search Movies', () => {
describe('Onload - do first search()', () => {
beforeAll(async () => {
wrapper = mount(
<ProviderMovies>
<SearchMovies />
</ProviderMovies>
);
await new Promise((resolve) => setImmediate(resolve));
await act(
() =>
new Promise<void>((resolve) => {
resolve();
})
);
});
it('should have: populated Provider context - with movies', async () => {
});
});
});
Provider.tsx
import React, { useState } from 'react';
import { PropsMovieLight, TAnyHook } from 'src/types';
export type TsetMovies = React.Dispatch<React.SetStateAction<PropsMovieLight[]>>;
export interface PropsContext {
movies: PropsMovieLight[] | never[];
setMovies: TsetMovies;
}
const placeholder = {
movies: [],
setMovies: () => {}
};
export const ContextMovies = React.createContext<PropsContext>(placeholder);
export const ProviderMovies: React.FC = ({ children }) => {
const [movies, setMovies] = useState<PropsMovieLight[] | never[]>([]);
return (
<ContextMovies.Provider
value={{
movies,
setMovies
}}
>
{children}
</ContextMovies.Provider>
);
};
在我的测试中,我想测试我的上下文状态是否已更新。 这里的所有功能都适用于我的应用程序。 我只是想测试电影何时更新以及如何在我的酶测试中访问它? 我如何在此酶测试中获得状态?