Jasmine 中的 TestBed 是什么
What is TestBed in Jasmine
我是 Jasmine 的新手 Angular 2,我在编写测试用例时经常使用 TestBed 对象并收到错误:Please call "TestBed.compileComponents" before your test.
如何解决这个错误?
@Component({
moduleId:module.id,
selector: 'my-app',
templateUrl: 'app-component.html',
})
Please call "TestBed.compileComponents" before your test
使用 templateUrl
测试组件时需要此调用
Error: Cannot create the component AppComponent as it was not imported into the testing module!
您需要在每次测试前配置TestBed
,添加测试所需的任何组件、模块和服务。这就像从头开始配置常规 @NgModule
,但您只需添加所需的内容即可。
import { async, TestBed } from '@angular/core/testing';
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ AppComponent ],
providers: [],
imports: []
})
.compileComponents();
}));
it('...', () => {
let fixture = TestBed.createComponent(AppComponent);
});
另请参阅
- Angular testing docs 更多完整示例。
我是 Jasmine 的新手 Angular 2,我在编写测试用例时经常使用 TestBed 对象并收到错误:Please call "TestBed.compileComponents" before your test.
如何解决这个错误?
@Component({
moduleId:module.id,
selector: 'my-app',
templateUrl: 'app-component.html',
})
Please call "TestBed.compileComponents" before your test
使用 templateUrl
Error: Cannot create the component AppComponent as it was not imported into the testing module!
您需要在每次测试前配置TestBed
,添加测试所需的任何组件、模块和服务。这就像从头开始配置常规 @NgModule
,但您只需添加所需的内容即可。
import { async, TestBed } from '@angular/core/testing';
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ AppComponent ],
providers: [],
imports: []
})
.compileComponents();
}));
it('...', () => {
let fixture = TestBed.createComponent(AppComponent);
});
另请参阅
- Angular testing docs 更多完整示例。