Глоссарий
Слова этой документации простым языком. У каждого — что оно значит в тесте и, где это помогает, к какой функции ведёт. В последнем столбце — английский термин, который стоит на английских страницах.
В русских страницах не пишем «шпион», «засев», «спутник ядра», «поверхность», «отгружен», «инстанцировать», «аугментация», «входная точка» и «сюита». Вместо них — термины из таблиц выше.
Спаи и подмены
| Термин | Что значит | 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 |
| zoneless | Angular без 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 |