Как написать модульный тест с функцией высшего порядка с Jest in React JS - PullRequest
0 голосов
/ 13 февраля 2020

Здравствуйте, я новичок в React и пытаюсь написать модульный тест для функций высшего порядка с Jest, и я не знаю, как это сделать. Может, кто-нибудь мне поможет? Это код моей ВЫСШЕЙ ФУНКЦИИ ЗАКАЗА ниже:

const updateSearchTopStoriesState = (hits, page) => (prevState) => {
    const { searchKey, results } = prevState


    const oldHits = results && results[searchKey]
        ? results[searchKey].hits
        : []


    const updatedHits = [
        ...oldHits,
        ...hits
    ]
    // returning our previous state 
    return {
        results: {
            ...results,
            [searchKey]: { hits: updatedHits, page }
        },
        isLoading: false
    }
}

export default updateSearchTopStoriesState

1 Ответ

0 голосов
/ 13 февраля 2020

Не зная ЧТО вы пытаетесь проверить, или ЧТО форма любого из параметров, это почти невозможно ответить точно. Вот пара юнит-тестов, которые я бы написал:

describe("updateSearchTopStoriesState", () => {
  it("should return a function", () => {
    expect(typeof updateSearchTopStoriesState()).toBe("function");
  });

  it("should return default return value", () => {
    const { results, isLoading } = updateSearchTopStoriesState()({
      searchKey: "test"
    });

    expect(results).toEqual({ test: { hits: [] } });
    expect(isLoading).toBe(false);
  });
});

Edit spring-violet-nizth

В песочнице я запустил третий тест, который в настоящее время не проходит (по общему признанию) скорее всего из-за отсутствия у меня контекста параметров, но должен передаваться на основе внутреннего комментария реализации, который вы оставили в коде функции).

Это должно помочь вам запустить файл модульного теста для этой функции, но пожалуйста, прокомментируйте, если что-то неясно или это не совсем то, о чем вы спрашиваете.

...