Мои занятия -

class Course{
  public getFormattedTime(){
    // logic to parse time and return in appropriate format
    // return string
  }
}

Согласно документации jest https://jestjs.io/docs/en/ es6-class-mocks#automatic-mock, replaces all of its methods with mock functions that always return undefined. Итак, мой вопрос: если мы изменим все возвращаемые значения метода на undefined, то что еще осталось проверить? Я не хочу проверять, сколько раз вызывается этот метод, я просто хочу проверить фактическую логику внутри метода. Я что-то пропустил здесь

0
Amitoz Deol 9 Апр 2020 в 19:00

1 ответ

Цель тестирования — протестировать только ту функцию, на которую вы ориентируетесь. Если функция вызывает другую, то вторая функция должна быть смоделирована. Автоматическое издевательство просто создаст поддельный класс, и каждый метод вернет значение undefined. Если вы хотите, чтобы ваши методы возвращали определенные значения для целей тестирования, вам следует взглянуть на ручное издевательство. https://jestjs.io/docs/en/es6-class- mocks#manual-mock

0
Psyycker 9 Апр 2020 в 19:06
Все, что я хочу сделать, это expect(Course.getFormattedTime()).toBe(<SOME_VALUE>). Я не хочу изменять то, что вернет этот метод. Я хочу, чтобы он выполнял логику за меня, а затем возвращал любое конечное значение
 – 
Amitoz Deol
9 Апр 2020 в 19:31