После обновления Jest с версии 23 до версии 24 при запуске моих тестов я получаю такое предупреждающее сообщение почти для каждого теста:
Обратный вызов «describe» не должен возвращать значение. Возврат значения из «describe» не пройдет тест в будущей версии Jest.
Сопутствующая трассировка стека указывает на этот модуль:
addSpecsToSuite (node_modules/jest-jasmine2/build/jasmine/Env.js:443:15)
Причина этого в том, что мне нравится использовать сокращенную версию стрелочных функций для своих тестов, опуская фигурные скобки, когда тело функции содержит только один оператор, например:
describe('true', () =>
it('should be truthy', () =>
expect(true).toBeTruthy()));
Оператор it
, по-видимому, возвращает что-то отличное от undefined
, отсюда и предупреждение.
Я нашел два способа исправить это:
① Не используйте сокращенные функции со стрелками
describe('true', () => {
it('should be truthy', () =>
expect(true).toBeTruthy());
});
② Используйте void
для принудительного возврата Undefined
describe('true', () =>
void it('should be truthy', () =>
expect(true).toBeTruthy()));
Я не нахожу ни один из этих вариантов приемлемым, я не хочу рефакторить тысячи тестов только для того, чтобы порадовать Джеста (или Жасмин).
Итак, мой вопрос:
Есть ли способ настроить Jest так, чтобы эти предупреждения не выдавались при использовании сокращенных функций со стрелками?
describe()
функции сокращенных стрелок или нет. Оказывается, это ошибка в PhpStorm, которую нужно устранить в версии 2018.3.6. Обходной путь можно найти здесь: intellij-support.jetbrains.com/hc/en-us/community/posts/ - person urig   schedule 21.03.2019