创建组件实例:Angular2单元测试
我试图在组件的测试文件中创建组件的实例。但当我这样做的时候:创建组件实例:Angular2单元测试,angular,angular2-testing,Angular,Angular2 Testing,我试图在组件的测试文件中创建组件的实例。但当我这样做的时候: let componentInstance = new component(); 它击中了组件构造函数,它的主体中还有一些东西 constructor( param ) { ......; ......; } 现在构造器主体使用一些其他服务,因此每当我试图创建这个组件的实例并运行它时,它都会抱怨构造器主体中使用的未知属性(因为spec文件显然不知道我们组件的构造器主体中发生了什么) 您知道如何在其规范文件中创建该组件的实例吗?您应
let componentInstance = new component();
它击中了组件构造函数,它的主体中还有一些东西
constructor( param ) {
......;
......;
}
现在构造器主体使用一些其他服务,因此每当我试图创建这个组件的实例并运行它时,它都会抱怨构造器主体中使用的未知属性(因为spec文件显然不知道我们组件的构造器主体中发生了什么)
您知道如何在其规范文件中创建该组件的实例吗?您应该在每次测试之前,使用测试床
配置测试模块。在这里,您可以声明要测试的组件及其所需的任何提供程序。然后您还可以使用测试床
创建组件
beforeEach(() => {
TestBed.configureTestingModule({
imports: []
declarations: [ TestComponent ],
providers: [ TestService ]
});
});
it('...', () => {
let fixture = TestBed.createComponnt(TestComponent);
let component: TestComponent = fixture.componentInstance;
});
如果TestService
需要任何服务,那么您也应该添加这些服务。如果TestService
需要Http
,那么您需要模拟连接,以便在测试期间没有真正的XHR请求。例如,请参阅下面的链接
另请参见:
- 。它提供了您可以想到的大多数场景中的测试示例
- 查看如何模拟
连接以提供模拟响应Http
测试床
配置一个测试模块。在这里,您可以声明要测试的组件及其所需的任何提供程序。然后您还可以使用测试床
创建组件
beforeEach(() => {
TestBed.configureTestingModule({
imports: []
declarations: [ TestComponent ],
providers: [ TestService ]
});
});
it('...', () => {
let fixture = TestBed.createComponnt(TestComponent);
let component: TestComponent = fixture.componentInstance;
});
如果TestService
需要任何服务,那么您也应该添加这些服务。如果TestService
需要Http
,那么您需要模拟连接,以便在测试期间没有真正的XHR请求。例如,请参阅下面的链接
另请参见:
- 。它提供了您可以想到的大多数场景中的测试示例
- 查看如何模拟
连接以提供模拟响应Http