Provider - это поставщик. То есть, его назначение и сфера применения - это поставка согласно заранее определенному контракту - настроек \ точек данных \ значений - для использования в определенном контексте. Где контекст - это последовательность \ область использования.
То есть Provider - это способ определить специфическое поведение в каком-то конкретном месте, без явного определения внутри каждого потребителя. Например, родительский компонент определяет для себя реализацию \ экземпляр провайдера, предоставляющий особое поведение или особый набор данных для этого компонента и его дочерних, отличный от поведения \ набора данных декларируемого для других модулей или приложения в целом.
Возвращаясь к примеру с сервисом доставки почты до почтового отделения, предположим, что ему нужно учитывать климатические зоны: обычная и крайней север.
Для этого нам понадобиться:
Для всего приложения (основной зоны работы) опубликовать провайдер, возвращающий экземпляр сервиса, созданный со сроком хранения посылок - 3 дня
Для компонента, работающего в зоне крайнего севера, опубликовать провайдер, возвращающий экземпляр сервиса, созданный со сроком хранения посылок - 90 дней
Провайдер - это коробочка, которая поставляет независимым компонентам какое-то поведение или данные без явного определения его внутри классов/компонентов, в которых он используется.
Постфикс d - это стандартное сокращение от definition, то есть - юнит определений. Он автоматически игнорируется при сборке js, используется только препроцессором и автоматическим публикуется при подключении сборки содержащей его.
Юниты содержащие только типы и контракты, должны именоваться с постфиксом .d.
Для игнорирования набора тестов при запуске - также можно использовать .skip. В данном случае - запустятся тесты только из первого набора (‘first suite’), для которого установлено describe; второй набор тестов (‘second suite’) - будет пропущен, так как у него установлен describe.skip:
У .skip есть - алиас xdescribe; то есть, в Jest можно (по идее) написать по аналогии с Jasmine:
Использование .skip для игнорирования нескольких наборов тестов
Аналогично предыдущему вварианту, можно указать .skip для пропуска нескольких наборов тестов; в данном случае - будут запущены только два первых набора тестов:
У .skip в Jest есть - алиас xdescribe; то есть, в Jest можно (по идее) написать по аналогии с Jasmine: