我正在尝试在组件的测试文件中创建组件的实例。但是,当我做这样的事情时:
let componentInstance = new component();
它击中组件构造函数,它的主体内部还有一些东西,
constructor( param ) {
......;
......;
}
现在构造函数体使用了一些其他服务,因此每当我尝试创建此组件的实例并运行它时,它就会抱怨构造函数体中使用的未知属性(因为spec文件显然没有我不知道我们组件的构造函数体中发生了什么。
任何想法如何在其spec文件中创建该组件的实例?
答案 0 :(得分:1)
您应该在每次测试之前使用TestBed
配置测试模块。在这里,您可以声明要测试的组件以及它需要的任何提供程序。然后使用TestBed
创建组件。
beforeEach(() => {
TestBed.configureTestingModule({
imports: []
declarations: [ TestComponent ],
providers: [ TestService ]
});
});
it('...', () => {
let fixture = TestBed.createComponnt(TestComponent);
let component: TestComponent = fixture.componentInstance;
});
如果TestService
需要任何服务,那么您也应该添加这些服务。如果TestService
需要Http
,那么您需要模拟连接,以便在测试期间没有真正的XHR请求。请参阅下面的链接,例如
另见:
Http
连接以提供模拟回复。