什么是Jasmine的TestBed

fru*_*tjs 3 jasmine karma-jasmine angular2-testing angular

我是使用Angular 2的Jasmine的新手,我经常在编写Testcase并获取错误时使用TestBed对象:Please call "TestBed.compileComponents" before your test.

我该如何解决这个错误?

@Component({
  moduleId:module.id,
    selector: 'my-app',
    templateUrl: 'app-component.html',

})
Run Code Online (Sandbox Code Playgroud)

Pau*_*tha 11

请在测试前调用"TestBed.compileComponents"

使用时测试组件时需要此调用 templateUrl

错误:无法创建组件AppComponent,因为它未导入测试模块!

您需要TestBed在每次测试之前配置,添加测试所需的任何组件,模块和服务.这就像@NgModule从头开始配置常规,但您只需添加所需内容即可.

import { async, TestBed } from '@angular/core/testing';

beforeEach(async(() => {
  TestBed.configureTestingModule({
    declarations: [ AppComponent ],
    providers: [],
    imports: []
  })
  .compileComponents();
}));

it('...', () => {
  let fixture = TestBed.createComponent(AppComponent);
});
Run Code Online (Sandbox Code Playgroud)

也可以看看

  • 为测试环境配置模块. (2认同)