【发布时间】:2017-08-22 10:36:02
【问题描述】:
我的设置和这篇帖子一样https://stackoverflow.com/a/42462579/1818048
但我无法在我的 Karama Jasmine 测试中使用 ServiceLoctor.inject.get - 注射器为空
constructor() {
this.inject = ServiceLocator.injector.get(InjectionService);
this.configService = ServiceLocator.injector.get(ConfigService);
}
在 app.moudle 模块中,我声明了以下内容,以便全局可用。
export class AppModule {
constructor(private injector: Injector) {
ServiceLocator.injector = this.injector;
}
}
这是我的测试设置中的一个 sn-p
describe('MyButtonComponent', () => {
let component: MyButtonComponent;
let fixture: ComponentFixture<MyButtonComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ButtonComponent, MyButtonComponent],
providers: [SomeService,
{ provide: Router, useClass: RouterTestingModule },
{ provide: ServerService, useClass: GenericMock },
]
})
.overrideComponent(ResourceService, {
set: {
providers: [
{ provide: ConfigService, useClass: ConfigServiceMock }
]
}
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyButtonComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
现在,当我运行测试时,ServiceLocator.injector 为空。我怎样才能让 Karma Jasmin 在父级中设置这个或者这是不可能的?
【问题讨论】:
标签: angular typescript karma-jasmine