ang1では、ローカルで開発していたときに$ httpBackendを使用してhttpコールをスタブ/モックすることができました。ローカル開発用のAngular2レスポンスのスタブ付け
$httpBackend
.whenGET('/api/v1/accounts/ticker')
.respond({data: [1,2,3]})
Angular2のローカル開発では、どうやって同様のことをやりますか?
ang1では、ローカルで開発していたときに$ httpBackendを使用してhttpコールをスタブ/モックすることができました。ローカル開発用のAngular2レスポンスのスタブ付け
$httpBackend
.whenGET('/api/v1/accounts/ticker')
.respond({data: [1,2,3]})
Angular2のローカル開発では、どうやって同様のことをやりますか?
更新
describe('...',() => {
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [TestComponent],
providers: [
MockBackend
{provide: XHRBackend, useExisting: MockBackend},
{provide: JSONPBackend, useExisting: MockBackend}
],
imports: [HttpModule]
});
});
it('...',() => {
const fixture = TestBed.createComponent(TestComponent);
});
});
元
bootstrap(AppComponent, [
HTTP_PROVIDERS,
provide(XHRBackend, {useClass: MockBackend}),
provide(JSONPBackend, {useClass: MockBackend})]);
そしてMockBackend
を注入して、コンポーネントまたはbootstr後にそれを注入することができる
backend.connections.subscribe(c => connection = c);
http.request('data.json').subscribe((res) => {
expect(res.text()).toBe('awesome');
async.done();
});
connection.mockRespond(new Response('awesome'));
ようにそれを使用ap like
bootstrap(AppComponent, [
HTTP_PROVIDERS,
provide(XHRBackend, {useClass: MockBackend}),
provide(JSONPBackend, {useClass: MockBackend})])
.then((componentRef: ComponentRef) => {
let injector = componentRef.injector;
let backend = injector.get(MockBackend);
backend.connections.subscribe(connection => {
if(connection.request ...) {
connection.mockRespond(new Response('awesome'));
}
});
});
Node and Expressは実行可能なオプションを使用していますか?これにより、ローカルの本格的なRestサーバーを迅速に作成し、アプリケーションからRestサービスを呼び出すことができます。 – Picci