【发布时间】:2017-06-03 11:52:39
【问题描述】:
我是 Angular 整个单元测试场景的新手,所以如果大家能指出我的方向会很棒。我试图创建一个假服务并将数据传回,我可以运行一些简单的测试。
当我去运行测试时,它似乎失败了
服务器错误 在 webpack:///~/rxjs/Subscriber.js:194:0
我不认为这是我的 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);
}
);
});
});
当我想使用假的时,测试似乎仍然得到了我认为的真正服务
【问题讨论】:
-
为什么要在尝试测试该服务时使用虚假服务?! 理想情况下,您应该编写删除后仍未通过的测试他们应该锻炼的东西。
标签: angular unit-testing karma-jasmine