javascript-如何在Angular 4规格文件中模拟nativeElement.focus()
作者:互联网
我有一个使用下面定义的ElementRef的方法.
@ViewChild('idNaicsRef') idNaicsRef: ElementRef;
然后,ElementRef使用.nativeElement.focus()设置焦点.
该方法在运行规范时失败,并说“未定义是对象”
解决方法:
尽管httpNick的答案应该行得通,但我最终还是向团队中的一名架构师询问了这一问题,他使我想到了一个稍微不同的解决方案,该解决方案可能会更简单一些.
describe(MyComponent.name, () => {
let comp: MyComponent;
describe('myFunction', () => {
it('calls focus', () => {
comp.idNaicsRef = {
nativeElement: jasmine.createSpyObj('nativeElement', ['focus'])
}
comp.myFunction();
expect(comp.idNaicsRef.nativeElement.focus).toHaveBeenCalled();
});
});
这个特定的例子只是测试看看是否调用了focus方法.那是我在测试方法时感兴趣的测试,但是您当然可以测试任何您想要的东西.关键是预先设置(在向我展示之前难以捉摸).
标签:angular,specifications,javascript 来源: https://codeday.me/bug/20191109/2012767.html