【问题标题】:Jest: nativeElement.getBoundingClientRect is not a function [closed]开玩笑:nativeElement.getBoundingClientRect 不是函数[关闭]
【发布时间】:2021-03-23 01:17:51
【问题描述】:

我正在尝试在我的应用程序测试中验证两个 getBoudingClientRect 函数返回,但是当我尝试验证第二个返回时出现错误。

第一个是在我按 ID 搜索的 HTMLElement 中,到目前为止还可以。在测试中,我可以模拟你的回报如下:

HTMLElement.prototype.getBoundingClientRect = jest.fn();

但是,第二个元素是 ElementRef,我通过 nativeElement 访问来获取他的信息,即使我尝试以任何方式模拟他的返回,当我尝试在我的组件:

TypeError: el.nativeElement.getBoundingClientRect 不是函数

谁能帮我解决这个问题?

【问题讨论】:

    标签: angular unit-testing jestjs


    【解决方案1】:

    刚刚更新,我发现了问题。为了测试我创建的方法,我需要模拟一个 ElementRef 并向它传递一些属性,然后我收到错误消息,因为我没有告诉我的元素 getBoundingClientRect 是一个函数。因此,尝试将 Mock 放在其他任何地方,我只需要在 ElementRef 声明中模拟此函数及其返回,如下所示:

     const el = new ElementRef({ 
          getBoundingClientRect() { 
            return {
            
            }
          }
        });
    

    它对我有用。虽然这不是错误,而是工具的误用,但我希望它对遇到同样疑问的人有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-02-26
      • 2020-02-24
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多