Angular 7 Testing Karma错误:无法解析WebStorageService的所有参数:(?)

问题描述 投票:0回答:1

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();
  }));
angular angular7 karma-jasmine
1个回答
0
投票

有多种方法可以做到这一点。我建议使用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();
}));
© www.soinside.com 2019 - 2024. All rights reserved.