问题描述
我实现了名为“ A”的组件,该组件依赖于文档对象。 组件还具有一种称为onClose()的方法,该方法使用文档对象服务通过queryselector()获取元素。
component A{
constructor(@inject(DOCUMENT) private document:document){}
onClose(){
this.element = this.document.querySelector(
'.abc'
).parentNode;
}
}
我的单元测试代码是这样的:-
const mockDocument = {
querySelector: (val): any => {
return [
{
parentNode: val
}
];
}
};
beforeEach(async(() => {
TestBed.configureTestingModule({
providers: [{ provide: DOCUMENT,useValue: mockDocument }]
});
}));
我遇到错误
this._doc.querySelectorAll不是函数
任何人都可以建议存在问题的地方吗? 特定注入令牌的模拟是否有问题?
解决方法
如果您注意到错误提示this._doc.querySelectorAll
,但您只嘲笑了querySelector
方法。如果您也模拟querySelectorAll
方法,它应该可以工作。