编程语言
首页 > 编程语言> > javascript-如何在Angular 4规格文件中模拟nativeElement.focus()

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