Цитата: 
	
	
		
			 
			
				Иными словами, чем больше общего асбтрактного фреймворко-независимого кода, тем лучше.
			
			 
		 | 
	 
	 
 Это хорошо, но этого сложно добиться. И не в Angular тут дело. С React, Vue будет такая же история. Просто приходя в Angular проект, ты уже будешь знать реализацию большинства используемых там модулей. А приходя на проект с React`ом, например, кто-то для http запросов использует fetch, другие SuperAgent, третьи - XMLHttpRequest и так далее.
 В Angular для тестов есть  вспомогательные сущности, которые в принципе разработчик не обязан использовать. Опять же, если мы говорим про архитектуру Redux, то эти  вспомогательные сущности используются для тестирования рендера компонентов на основе данных в Store (хотя такие вещи лучше тестировать в рамках e2e тестов), ну или mock заглушки для backend`a, хотя можно воспользоваться и обычными spy в том же Jasmine.
 
Абстрактный фреймворко-независимый код появится с вымиранием старых бразуеров, и использованием HTML 5 Web Components :)  
	 |