针对有效提供商

时间:2016-12-19 12:18:15

标签: angular typescript

服务类的一部分:

@Injectable()
export class ErrorHelper {
  constructor(private schemaValidator: SchemaValidator, private translate: TranslateService) {
  }

测试:

class TranslateServiceMock {

}

describe('ErrorHelper', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [
        {provide: SchemaValidator, useValue: {}},
        {provide: TranslateService, useClass: TranslateServiceMock},
        ErrorHelper
      ]
    });
  });

  it('is injected', async(inject([ErrorHelper], (errorHelper: ErrorHelper) => {
    expect(errorHelper).toBeDefined();
  })));
});

错误:

Failed: Can't resolve all parameters for ErrorHelper: (?, TranslateService).

我不明白。如果DI甚至不必使用真正的类(我提供了所有依赖项),它如何在DI上失败?

我有一些类似的测试,DI工作正常,我对此错误感到困惑。

如果我删除了ErrorHelper及其注入,那么SchemaValidator模拟正好被注入到测试中。

0 个答案:

没有答案