创建组件的实例:Angular2单元测试

时间:2016-09-30 00:37:30

标签: angular angular2-testing

我正在尝试在组件的测试文件中创建组件的实例。但是,当我做这样的事情时:

let componentInstance = new component();

它击中组件构造函数,它的主体内部还有一些东西,

constructor( param ) {
......;
......;
}

现在构造函数体使用了一些其他服务,因此每当我尝试创建此组件的实例并运行它时,它就会抱怨构造函数体中使用的未知属性(因为spec文件显然没有我不知道我们组件的构造函数体中发生了什么。

任何想法如何在其spec文件中创建该组件的实例?

1 个答案:

答案 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请求。请参阅下面的链接,例如

另见: