Angular2 Jasmine测试用例无法解析NavBarComponent的所有参数:(?,?)
问题描述:
我正在开发Angular2 Angular CLI项目,并且正在编写Jasmine测试用例中的组件,我的项目中依赖于服务的组件是组件构造函数的参数)。当我尝试编写组件测试时,得到无法解析NavBarComponent的所有参数:(?,?)。Angular2 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);
});
}));
});
答
我有一个类似的错误,当我tsconfig.json
有编译器选项emitDecoratorMetadata
设置为false
,并切换到true
解决它。
添加你的构造函数并测试你的尝试。当你问问题时总是添加含义所需的代码 – mayur