首页 文章

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

提问于
浏览
0

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

let componentInstance = new component();

它命中了组件构造函数,它的体内还有一些东西,

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

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

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

1 回答

  • 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请求 . 请参阅下面的链接

    See Also:

相关问题