【发布时间】:2017-07-03 11:30:50
【问题描述】:
我正在开发 Angular2 Angular CLI 项目,我正在为组件编写 Jasmine 测试用例,我的项目的组件依赖于服务(它们是组件构造函数的参数)。当我尝试为组件编写测试时,我得到 Can't resolve all parameters for NavBarComponent: (?, ?)。
我已经模拟了服务并且能够为服务编写测试。但是,对于组件测试用例,我遇到了上述问题。
很高兴知道如何解决此问题。
这是我的代码
export class NavBarComponent implements OnInit {
constructor(private sanitizer: DomSanitizer,private service: AppService){
}
}
规格文件
describe('NavBarComponent component ', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [FormsModule, HttpModule],
declarations: [NavBarComponent],
providers: [{ provide: Router, useClass: class { navigate = jasmine.createSpy('navigate'); }},
{provide: AppService, useClass: AppService},
{provide: DomSanitizer, useClass: DomSanitizer}],
schemas: [NO_ERRORS_SCHEMA]
});
});
it('check the number of li elements in NavBarComponent component',
async(() => {
TestBed
.compileComponents()
.then(() => {
let fixture = TestBed.createComponent(NavBarComponent);
let userDOMEl = fixture.debugElement.nativeElement;
expect(userDOMEl.querySelectorAll('li').length).toEqual(17);
});
}));
});
【问题讨论】:
-
添加你的构造函数并测试你尝试过的。提问时始终添加有意义的必需代码
标签: angular unit-testing karma-jasmine