#jestjs
#jestjs
Вопрос:
У меня есть 2 файла с 1 функцией в нем. Мой тест такой же простой, смотрите ниже:
doc.js
export function createSynthId(doc) {
const synthId = `${doc.attachmentId}-${doc.materialId}-${doc.fileName}-${doc.title}-${doc.materialURL}`;
return synthId;
}
doc.test.js
import { createSynthId } from './doc';
describe('doc', () => {
it('create synthetic id', () => {
expect(createSynthId(global.doc)).toEqual('987654-123456-File Name.pptx-undefined-');
});
it('create synthetic id', () => {
expect(createSynthId({})).toEqual('undefined-undefined-undefined-undefined-undefined');
});
});
Мой второй файл практически такой же, просто функция большего размера. Оба теста успешно выполнены, но сообщается, что покрытие составляет 0% для операторов, функций и строк, но 100% для ветвей. В отчете о покрытии все строки также отображаются красным цветом.
У нас есть много похожих файлов, и все они работают. Чего я здесь не понимаю?
Обновить
Я добавил временную функцию в doc.js
export const makeTestsHappy = () => {
console.log(CONFIG);
};
добавление к doc.test.js
it('does more', () => {
makeTestsHappy();
});
и когда я пытаюсь это протестировать, я получаю ошибку TypeError: (0 , _doc.makeTestsHappy) is not a function
Комментарии:
1. вы импортировали эту функцию makeTestsHappy? вы можете поместить журналы внутрь
createSynthId
, чтобы проверить, вызывается ли он во время выполнения тестов2. я выполнил оба из них, и я не видел, как выполняются журналы. Однако смотрите Ответ ниже. Спасибо за попытку!
Ответ №1:
Вот этот манекен издевался над файлом, который я тестировал. Я забыл jest.unmock('/doc')
, что он сразу же начал работать, когда я разблокировал. Спасибо всем за ваше терпение: D
Ответ №2:
Попробуйте переименовать ваш тестовый файл из doc.test.js
в doc.spec.js
. Вы используете синтаксис BDD, и правильное имя должно включать spec
.
Комментарии:
1. не повезло, изменение спецификации ничего не дало. Кроме того, более 200 других моих тестов работают
.test.js
просто отлично.