Как модульно протестировать momentjs

#reactjs #jestjs

#reactjs #jestjs

Вопрос:

Как модульно протестировать такой код? Для этого я использую JEST введите описание изображения здесь

Комментарии:

1. Передайте аргументы функциям и сделайте утверждения, что возвращаемое значение действительно такое, каким вы его ожидаете видеть.

2. Вопрос не ясен, но даже если бы это было так, пожалуйста, разместите свой код внутри кодовых блоков , а не изображений текста.

Ответ №1:

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

Что-то вроде этого:

 import {
  formatDate,
  startEndDate
} from "./index.js";

describe("formatDate", () => {
  it("should format date properly", () => {
    expect(formatDate(new Date("01/12/1992"))).toBe("Jan 12, 1992");
  });
  // More such tests here with different values of dates.
});

describe("startEndDate", () => {
  it("should return start and end date in proper format", () => {
    expect(startEndDate(new Date("01/12/1992"), new Date("12/12/1992"))).toBe(
      "01/12/1992 - 12/12/1992"
    );
  });
  // More such tests here with different values of start and end dates.
});
  

Вот рабочий пример CodeSandbox для вашей ссылки.

PS: Игнорируйте Exceeded timeout of 5000ms for a test. тест, который вы видите в результате. Написанные нами onces (2 теста) пройдены.

Комментарии:

1. Спасибо @SiddAjmera!!! Я не знал, что могу импортировать точный файл и вызвать его следующим образом.

Ответ №2:

Я не думаю, что модульное тестирование требуется в таком случае. Издевательство над momentjs делает модульный тест элементарным. Сделайте интеграционный тест.