MockBackend – Stepan Suvorov Blog https://stepansuvorov.com/blog Release 2.0 Fri, 20 Jan 2017 08:57:46 +0000 en-US hourly 1 https://wordpress.org/?v=6.3.1 Angular2: Синхронная асинхронность MockBackend https://stepansuvorov.com/blog/2017/01/angular2-%d1%81%d0%b8%d0%bd%d1%85%d1%80%d0%be%d0%bd%d0%bd%d0%b0%d1%8f-%d0%b0%d1%81%d0%b8%d0%bd%d1%85%d1%80%d0%be%d0%bd%d0%bd%d0%be%d1%81%d1%82%d1%8c-mockbackend/ https://stepansuvorov.com/blog/2017/01/angular2-%d1%81%d0%b8%d0%bd%d1%85%d1%80%d0%be%d0%bd%d0%bd%d0%b0%d1%8f-%d0%b0%d1%81%d0%b8%d0%bd%d1%85%d1%80%d0%be%d0%bd%d0%bd%d0%be%d1%81%d1%82%d1%8c-mockbackend/#respond Fri, 20 Jan 2017 08:57:46 +0000 http://stepansuvorov.com/blog/?p=3230 Continue reading ]]> Решил сделать заметку по не очевидному моменту юнит-тестирования Angular2, а именно: когда вы мокаете Http сервис, заменяя XHRBackend на MockBackend:

[javascript]
TestBed.configureTestingModule({
imports: [HttpModule],
providers: [{provide: XHRBackend, useClass: MockBackend}]
});
[/javascript]

а потом с помощью mockBackend подменяете ответ от сервера:

[javascript]
mockBackend.connections.subscribe((connection: MockConnection) => {
connection.mockRespond(new Response(new ResponseOptions({body: JSON.stringify(mockUser)})));
})
[/javascript]

subscribe на http Observable становится внезапно синхронным:

[javascript]
console.log(1);
this._http.get(‘/’).subscribe((data) => {
console.log(2);
});
console.log(3);
[/javascript]

соотвественно выведет: 1 2 3.

Подробно вопрсос освещен на стеке.

 

]]>
https://stepansuvorov.com/blog/2017/01/angular2-%d1%81%d0%b8%d0%bd%d1%85%d1%80%d0%be%d0%bd%d0%bd%d0%b0%d1%8f-%d0%b0%d1%81%d0%b8%d0%bd%d1%85%d1%80%d0%be%d0%bd%d0%bd%d0%be%d1%81%d1%82%d1%8c-mockbackend/feed/ 0