Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建组件实例:Angular2单元测试_Angular_Angular2 Testing - Fatal编程技术网

创建组件实例: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
    连接以提供模拟响应

这很有帮助,谢谢!但当我尝试使用TestBed创建一个组件,然后通过“fixture.componentInstance”创建其实例时,我仍然无法访问该实例中组件的属性。因此,如果在组件的类定义中有一个名为“number”的整数变量,我就无法访问我们使用的实例中的“number”ust在规范文件中创建了fixture.componentInstance。对此有什么建议吗?这很有帮助,谢谢!但当我尝试使用TestBed创建组件,然后通过“fixture.componentInstance”创建其实例时,我仍然无法访问具有该实例的组件的属性。因此,如果类中有一个名为“number”的整数变量组件的定义,我无法访问刚在规范文件中创建fixture.componentInstance的实例的“number”。对此有何建议?