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

@ViewChild('idNaicsRef') idNaicsRef: ElementRef;
ElementRef 然后使用 .nativeElement.focus() 设置焦点。

该方法在运行规范时失败,说“未定义是一个对象”

最佳答案

这应该有效。这只是创建了一个 spy 对象,然后你可以用你想要的任何东西填充它,所以你甚至可以检查它是否在你的单元测试中被调用。

  import createSpyObj = jasmine.createSpyObj;
  comp.idNaicsRef = createSpyObj('idNaicsRef', ['nativeElement']);
  comp.idNaicsRef.nativeElement = { focus: () => { }};
comp 是对您正在测试的组件的引用。
createSpyObj 来自 Jasmine 进口

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

10-10 09:51