Как использовать один рендер для нескольких тестов в библиотеке тестирования React? - PullRequest
0 голосов
/ 09 июля 2020

Можно ли поддерживать один и тот же render () в нескольких тестах при использовании библиотеки тестирования Jest и React? Я создаю приложение Trivia и имею один компонент, который отображает различные вопросы по мере прохождения пользователем викторины. Чтобы проверить функциональность кнопок выбора, кнопки отправки и проверки того, что нужные экраны отображаются в нужное время, мне нужно выполнить тесты на одном и том же визуализированном компоненте на разных этапах викторины. Например:

describe("Question Screen", () => {

    it("should render the first question when difficulty button is clicked", async () => {
        render(<TriviaBox/>);
        const btn = screen.getByRole("button", {name: /easy/i});
        fireEvent.click(btn);

        const heading = await screen.findByText("Question 1");
        expect(heading).toBeInTheDocument();
    });

    it("should display the next question when the current question is answered", async () => {
        render(<TriviaBox/>);
        const btn = screen.getByRole("button", {name: /easy/i});
        fireEvent.click(btn);

        const correctAnswer = await screen.findByRole("button", {name: /Nevada/i});
        const submit = await screen.findByRole("button", {name: /Submit/i});
        fireEvent.click(correctAnswer);
        fireEvent.click(submit);

        expect(wait screen.findByText("Question 2")).toBeInTheDocument();
        expect(wait screen.findByText("Which is the largest state?")).toBeInTheDocument();
        expect(wait screen.findAllByRole("radio")).toHaveLength(4);
        ...
    });
});

Есть ли способ сохранить тот же рендер из первого теста для использования во втором тесте, вместо повторного рендеринга того же компонента и повторного прохождения первого вопроса в Чтобы проверить второй вопрос?

...