我在使用webpack quickstart项目的角度2测试中遇到错误。angular 2 rc7 - 测试服务 - 错误:没有字符串供应商
Error: No provider for String! in config/karma-test-shim.js
我从来没有见过这个错误,其中缺少String的提供者。我想出了它与服务构造函数中的private url:string相关的内容,但我该如何解决它?
这里是我的testfile的
describe('http.ts',()=>{
beforeEach(()=>{
TestBed.configureTestingModule({
providers:[
SbHttp,
MockBackend,
BaseRequestOptions,
{ provide: Http, useFactory: (backend: MockBackend, defaultOptions: BaseRequestOptions) => {
return new Http(backend, defaultOptions);
}, deps: [MockBackend, BaseRequestOptions]}
],
imports: [
HttpModule
]
})
});
afterEach(()=>{
TestBed.resetTestingModule()
});
it('get() should work', inject([SbHttp],(sbHttp:SbHttp)=>{
expect(true).toBeTruthy()
}))
})
和这里的SbHttp服务
@Injectable()
export class SbHttp{
private baseUrl:string;
constructor(private url:string, private headers:Headers, private http:Http
){
this.baseUrl = utils.stripTrailingSlash(url)
}
}
如果我改变私人网址:任我得到这个错误
Can't resolve all parameters for SbHttp: (?, Headers, Http).
感谢您的回答!这次我会更彻底地阅读DI –