тестирование угловой службы без приложения

#angular #unit-testing #angular-test #angular-library

Вопрос:

У меня есть только один файл .ts (не угловой проект), содержащий одну службу

это всего лишь один файл, а не полный угловой проект, и это даже не угловая библиотека (вообще не содержит angular.json)

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

Я использую TestBed , но у меня всегда есть getComponentFromError

как я могу запустить тест без полного углового проекта (приложения или библиотеки)

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

1. Вы можете использовать шутку : jestjs.io

Ответ №1:

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

 const sut: MyClass;
beforeEach(() => {
   sut = new MyClass();
})
if(`kill all humans when time has come`, () => {
   const doomsDay = new Date(year, month, day);
   sut.killAllHumanWhenTimeHasCome(doomsDay);
})
 

Если у вас также нет бегуна для тестирования и механизма утверждения, вы можете просто добавить jasmine, как описано в инструкции по началу работы.