WebStorageService在组件中工作正常,但是尝试在Karma中进行测试时出现以下异常。
错误:无法解析WebStorageService的所有参数:(?)。
以下我的规格代码
import {LOCAL_STORAGE} from 'angular-webstorage-service';
import { WebStorageService } from 'angular-webstorage-service';
fdescribe('MyComponent', () => {
let component: MyComponent;
let fixture: ComponentFixture<MyComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
FormsModule,
],
declarations: [
MyComponent
],
providers: [
WebStorageService
],
})
.compileComponents();
}));
有多种方法可以做到这一点。我建议使用WebStorageService的存根。这意味着服务不会执行,而是您添加到规范中的一些模拟代码。对于测试组件,最好不执行服务,而是提供可行的演示数据。
首先定义存根:
exort const webStoreageServiceStub = {
function1() {
return something;
}
function2() {
return something;
}
.
.
.
}
然后提供它:
providers: [
{ provide: WebStorageService, useValue: webStoreageServiceStub}
]
您也可以使用
schemas: [NO_ERRORS_SCHEMA]
这里将所有内容添加到您的代码中。
exort const webStoreageServiceStub = {
function1() {
return something;
}
function2() {
return something;
}
}
describe('MyComponent', () => {
let component: MyComponent;
let fixture: ComponentFixture<MyComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
FormsModule,
],
declarations: [
MyComponent
],
providers: [
{ provide: WebStorageService, useValue: webStoreageServiceStub}
],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
}));