javascript - 如何在 Angular 4 规范文件中模拟 nativeElement.focus()

标签 javascript angular specifications

我有一个使用下面定义的 ElementRef 的方法。

@ViewChild('idNaicsRef') idNaicsRef: ElementRef;

ElementRef 然后使用 .nativeElement.focus() 设置焦点。

该方法在运行规范时失败,提示“undefined is an object”

最佳答案

尽管 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 方法是否被调用。这是我在测试我的方法时感兴趣的测试,但您当然可以测试任何您想要的测试。关键是事先的设置(在向我展示之前这是难以捉摸的)。

关于javascript - 如何在 Angular 4 规范文件中模拟 nativeElement.focus(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48909043/

相关文章:

javascript - 如何使用innerHTML 使文本过渡平滑,并在更改时淡入/淡出?

javascript - 使用 lodash 简化表达式

javascript - 为什么我的链接在向导航添加负边距后不起作用?

javascript - Angular 2 - 仅在 x 秒后将 JSON 数组填充到 View

angular - 如何等待 'for loop next iteration' 直到 FileReader.onload 结果获得

javascript - 在 npm lib 中使用的 rxjs 应该是依赖关系、对等依赖关系还是两者兼而有之?

c++ - 您在哪里跟踪新的 c++ 标准的发展?

java - 使用代码注释将用户表达的需求与代码联系起来是个好主意吗?

javascript - 如何将值作为对象存储在 $localStorage 中

c++ - 作为函数调用的一部分创建的临时对象何时被销毁?