Решил сделать заметку по не очевидному моменту юнит-тестирования Angular2, а именно: когда вы мокаете Http сервис, заменяя XHRBackend на MockBackend:
TestBed.configureTestingModule({ imports: [HttpModule], providers: [{provide: XHRBackend, useClass: MockBackend}] });
а потом с помощью mockBackend подменяете ответ от сервера:
mockBackend.connections.subscribe((connection: MockConnection) => { connection.mockRespond(new Response(new ResponseOptions({body: JSON.stringify(mockUser)}))); })
subscribe на http Observable становится внезапно синхронным:
console.log(1); this._http.get('/').subscribe((data) => { console.log(2); }); console.log(3);
соотвественно выведет: 1 2 3.
Подробно вопрсос освещен на стеке.