Ошибка проверки кармы в Angular 7: невозможно разрешить все параметры для WebStorageService: (?) - PullRequest
0 голосов
/ 23 октября 2019

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();
  }));

1 Ответ

1 голос
/ 24 октября 2019

Есть несколько способов сделать это. Я бы порекомендовал работать с заглушками для 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();
}));
...