Перейти к содержимому

Глоссарий ​

Слова этой документации простым языком. У каждого — что оно значит в тесте и, где это помогает, к какой функции ведёт. В последнем столбце — английский термин, который стоит на английских страницах.

В русских страницах не пишем «шпион», «засев», «спутник ядра», «поверхность», «отгружен», «инстанцировать», «аугментация», «входная точка» и «сюита». Вместо них — термины из таблиц выше.

Спаи и подмены ​

ТерминЧто значитEN
спайФункция-заменитель. Запоминает каждый вызов и отвечает тем, что вы задали. createSpyFromClass(UserService) даёт объект, у которого каждый метод — спай.spy
Spy<T>Тип этого объекта: каждый метод T типизирован как спай, плюс хелперы, которые допускает его тип возврата (resolveWith, nextWith, …).Spy<T>
подмена, тестовый дубльЛюбой объект, который стоит в тесте вместо настоящей зависимости. Объект со спаями — один из видов подмены.test double
стабПодмена, которая только отвечает заданными значениями и ничего не запоминает. Такую строит createMock<T>().stub
мокПодмена, которой заранее сказали, каких вызовов ждать; на остальных она падает. Спай становится моком через mustBeCalledWith и strict.mock
фейкРабочая упрощённая реализация, например хранилище в памяти. Эта библиотека фейков не строит.fake
фикстураГотовый тестовый объект с разумными значениями, например User со всеми заполненными полями. См. Фикстуры без кастов.fixture
задать заранее (returns)Задать ответ спая при создании, а не отдельной строкой позже: createSpyFromClass(UserService, { returns: { load: of(user) } }).preset
overridesЗаменить член обычным значением, которое уже не спай. См. returns или overrides.overrides
строгий режимРежим, в котором ненастроенный метод бросает ошибку, а не возвращает undefined. См. Строгий режим.strict
ленивый спайСпай метода, который создаётся при первом обращении, а не заранее. Экономит память на широких классах; в тесте ведёт себя так же.lazy spy
хелперМетод, который библиотека добавляет спаю: resolveWith, nextWith, calledWith. См. Управляющие хелперы.helper

Пакеты и настройка ​

ТерминЧто значитEN
точка входаПуть импорта под ваш раннер или фреймворк: vitest-auto-spy, vitest-auto-spy/angular, vitest-auto-spy/bun. См. Точки входа.entry point
адаптер раннераСвязка библиотеки с мок-функцией вашего раннера (vi.fn(), mock() в Bun, mock.fn() в node:test). Её регистрирует импорт точки входа.runner adapter
setup-файлФайл, который раннер загружает перед каждым файлом тестов, например vitest.setup.ts из setupFiles. Глобальные переключатели ставятся там.setup file
спека, файл тестаОдин файл с тестами, например user.service.spec.ts.spec file
набор тестовВсе тесты проекта или тесты одного блока describe.suite
peer-зависимостьПакет, которым библиотека пользуется, но не ставит сама: его даёт ваш проект. Здесь все такие зависимости необязательные.peer dependency
вынести из обработкиVitest грузит пакет из node_modules как есть и не обрабатывает его вместе с вашим кодом. Тогда у Angular может оказаться две копии @angular/core/testing.externalize
инлайнитьОбратное: Vitest обрабатывает пакет вместе с вашим кодом, и у всех одна копия каждой зависимости (server.deps.inline).inline
расширение типовДобавление членов в типы библиотеки из своего кода через declare module.type augmentation

Angular ​

ТерминЧто значитEN
TestBedТестовый модуль Angular. Создаёт компоненты и сервисы через настоящее внедрение зависимостей (DI).TestBed
провайдерЗапись в providers: [...], которая говорит DI, что выдавать для класса или токена. provideAutoSpy(UserService) — провайдер.provider
получить через DIВзять экземпляр из DI через inject() или TestBed.inject(). injectSpy(UserService) делает то же и возвращает его с типом Spy<UserService>.inject
zonelessAngular без zone.js. Обнаружение изменений идёт на сигналах, fakeAsync недоступен.zoneless
поверхностный рендерРендер компонента, у которого дочерние компоненты заменены пустыми заглушками. См. renderShallow на странице Angular.shallow render
standalone-компонентКомпонент, который сам перечисляет свои imports и не входит в NgModule. В тесте его кладут в imports у TestBed.standalone
билдер unit-test@angular/build:unit-test из Angular CLI: запускает Vitest по команде ng test.unit-test builder

Слова рантайма ​

ТерминЧто значитEN
создать экземплярВызвать new. Библиотека никогда не делает этого с классом, который подменяет, поэтому его конструктор не выполняется.instantiate
прототипОбъект, в котором лежат методы класса. Библиотека читает его, чтобы найти методы для спаев.prototype
поле экземпляраСвойство, которое задаёт конструктор или запись name = value в теле класса. На прототипе его нет, поэтому для него нужна отдельная опция.instance field
isolate: falseОпция Vitest: много файлов тестов в одном общем окружении. Быстрее, но глобальное значение, которое изменил один файл, протекает в следующий.isolate: false

Опубликовано под лицензией MIT.