0

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

let componentInstance = new component();

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

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

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

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

4

1 回答 1

3

您应该在每次测试之前配置一个测试模块,使用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 请求。例如,请参见下面的链接

也可以看看:

于 2016-09-30T01:35:37.013 回答