Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Jest:nativeElement.getBoundingClientRect不是函数_Angular_Unit Testing_Jestjs - Fatal编程技术网

Angular Jest:nativeElement.getBoundingClientRect不是函数

Angular Jest:nativeElement.getBoundingClientRect不是函数,angular,unit-testing,jestjs,Angular,Unit Testing,Jestjs,我试图在应用程序测试中验证两个getBoudingClientRect函数的返回,但在尝试验证第二个函数的返回时出错 第一个是我通过ID搜索的HTMLElement,到目前为止还可以。在测试中,我可以如下模拟您的返回: HTMLElement.prototype.getBoundingClientRect=jest.fn() 但是,第二个元素是ElementRef,我通过nativeElement访问来获取他的信息,尽管我尝试以任何方式模拟他的返回,但当我尝试在我的组件中获取此值时,总是会得到相

我试图在应用程序测试中验证两个getBoudingClientRect函数的返回,但在尝试验证第二个函数的返回时出错

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

HTMLElement.prototype.getBoundingClientRect=jest.fn()

但是,第二个元素是ElementRef,我通过nativeElement访问来获取他的信息,尽管我尝试以任何方式模拟他的返回,但当我尝试在我的组件中获取此值时,总是会得到相同的错误:

TypeError:el.nativeElement.getBoundingClientRect不是函数


有人能帮我解决这个问题吗?

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

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

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

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

 const el = new ElementRef({ 
      getBoundingClientRect() { 
        return {
        
        }
      }
    });
这对我有用。虽然这不是一个错误,而是对工具的滥用,但我希望它能帮助那些经历同样疑问的人