服务类的一部分:
@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模拟正好被注入到测试中。