Im新的整體單元測試場景與Angular,所以如果傢伙可以指向我的方向是很好的..我試圖創建一個虛假的服務,並傳回數據,我可以運行一些簡單的測試..單元測試Angular 2服務
當我去運行它似乎在向的WebPack失敗,
Server錯誤 測試:///~/rxjs/Subscriber.js:194:0 < - 配置/ karma- test-shim.js:20301
我不認爲它是我的webpack配置..這裏是我的代碼...
import { SearchModule } from './search.module';
import { SearchService } from './search.services';
import { HttpModule } from '@angular/http';
import { inject, TestBed } from '@angular/core/testing';
import { Observable } from 'rxjs/Observable';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
class SearchServiceMock {
search() {
return Observable.of(
[
{
"title": "title_1",
"artist": "artist_1",
"release": "06/02/2016",
"slug": "slug-1"
},
{
"title": "title_2",
"artist": "artist_1",
"release": " 27/01/2017",
"slug": "slug-2"
},
{
"title": "title_3",
"artist": "artist_3",
"release": "17/02/2017",
"slug": "slug-3"
}
]
)
}
}
describe('Service: TracksServices',() => {
let searchService: SearchService;
beforeEach(() => TestBed.configureTestingModule({
imports: [ SearchModule, HttpModule ],
providers: [
{ provide: SearchService, useClass: SearchServiceMock },
]
}));
beforeEach(inject([SearchService], (s: any) => {
searchService = s;
}));
it('Search results 3',() => {
searchService.search('track 1', 1, 4).subscribe(
(x:any) => {
// expect(x).toContain(track);
expect(x.length).toEqual(3);
}
);
});
});
測試似乎仍然得到真正的服務,我想,當我要使用測試雙打的假的
爲什麼你想要在嘗試測試服務時使用虛假服務?你最好應該編寫在你刪除應該運行的東西時仍然不能通過的測試。 – jonrsharpe