ich damit einige mehr auf meinem eigenen um verwirrte. Hier ist, was ich kam mit für den Test selbst:
it('should assign a list of books', inject([BookService, MockBackend, Http], (bookService, backend, http) => {
backend.connections.subscribe(connection => {
var mockResponse = new Response(new ResponseOptions({
body: [{ name: 'Whiteboard Interviews' }]
}));
connection.mockRespond(mockResponse);
});
let service = new BookService(http);
service.getList().subscribe(response => {
expect(response.json()).toEqual([{ name: 'Whiteboard Interviews' }]);
});
}));
Und hier ist die volle spec-Datei:
/* tslint:disable:no-unused-variable */
import { provide } from '@angular/core';
import { MockBackend } from '@angular/http/testing';
import {
Http,
HTTP_PROVIDERS,
Response,
ResponseOptions,
BaseRequestOptions,
ConnectionBackend
} from '@angular/http';
import {
beforeEach, beforeEachProviders,
describe, xdescribe,
expect, it, xit,
async, inject
} from '@angular/core/testing';
import { BookService } from './book.service';
describe('Book Service',() => {
beforeEachProviders(() => [
BookService,
HTTP_PROVIDERS,
MockBackend,
BaseRequestOptions,
provide(Http, {
useFactory: function (backend:ConnectionBackend, defaultOptions:BaseRequestOptions) {
return new Http(backend, defaultOptions);
},
deps: [MockBackend, BaseRequestOptions]
})
]);
it('should ...',
inject([BookService], (service: BookService) => {
expect(service).toBeTruthy();
}));
it('should assign a list of books', inject([BookService, MockBackend, Http], (bookService, backend, http) => {
backend.connections.subscribe(connection => {
var mockResponse = new Response(new ResponseOptions({
body: [{ name: 'Whiteboard Interviews' }]
}));
connection.mockRespond(mockResponse);
});
let service = new BookService(http);
service.getList().subscribe(response => {
expect(response.json()).toEqual([{ name: 'Whiteboard Interviews' }]);
});
}));
});
Danke für die Antwort. Ich denke, das hilft, etwas Licht in das Thema zu bringen, obwohl der Teil, an dem ich mehr interessiert war, was _inside_ das 'it' geht. Ich habe eine separate Frage erstellt, die beschreibt, was ich gerade versuche. Vielleicht könnten wir die Lösung in diese Antwort einfügen, sobald das erledigt ist. http://stackoverflow.com/questions/38484765/angular-2-mock-response-not-working –