我正在开发Angular2 Angular CLI项目,我正在为组件创建Jasmine测试用例,我的项目组件依赖于服务(它们是组件构造函数的参数)。当我尝试编写组件测试时,我得到无法解析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);
});
}));
});
答案 0 :(得分:0)
当我的tsconfig.json
将编译器选项emitDecoratorMetadata
设置为false
时,我遇到了类似的错误,并切换到true
解决了它。