Я недавно начал писать модульные тесты для углового приложения, над которым я работаю. Есть одна вещь, о которой я не уверен, и это разница между модульным тестом и тестом интеграции в контексте Angular.Угловой модульный тест против теста интеграции
Предполагая, что у меня есть контроллер для проверки, который зависит от другой (не угловой) службы, должен ли я создать макет службы или попытаться использовать реальный сервис, когда это возможно.
Если я внедряю сам сервис, это не значит, что я создаю тест интеграции вместо единичного теста?
Я спрашиваю об этом, потому что мои коллеги по работе продолжают писать тесты, которые вводят реальные услуги и все еще называют их модульными тестами. Это затягивает большое время, особенно когда вам приходится отлаживать ошибки от инъецируемых услуг в тестах, и каждая услуга зависит от 5 других услуг ...
По моему опыту, угловые тесты (жасмин/мокка) включают инъекции «реальных» услуг. НО ваши юнит-тесты «заглушат» их поведение с любым желаемым взаимодействием. Вы можете использовать '$ обеспечить', чтобы издеваться над этими зависимостями в целом, но обычно, когда вам нужно несколько вещей, необходимых для службы, ее просто проще вставить реальную вещь и использовать« заглушку », чтобы просто определить поведение вашего теста. Самый большой противник для модульных тестов - это «состояние» внутри службы, и вам нужно как можно меньше поддерживать это внутри службы. – FrailWords