Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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

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
Javascript 在为addEventListener编写单元测试时遇到问题_Javascript_Unit Testing_Dom_Jestjs - Fatal编程技术网

Javascript 在为addEventListener编写单元测试时遇到问题

Javascript 在为addEventListener编写单元测试时遇到问题,javascript,unit-testing,dom,jestjs,Javascript,Unit Testing,Dom,Jestjs,我想为下面的函数编写一个jest单元测试,所以我得到了一个错误 const variableski = document.querySelector('.skipnav'); variableski.addEventListener('click', () => { this.somefunction(); }); 以下是单元测试解决方案: index.js: class-SomeClass{ skipToBotHandler(){ const skipNav=

我想为下面的函数编写一个jest单元测试,所以我得到了一个错误

 const variableski = document.querySelector('.skipnav');

 variableski.addEventListener('click', () => {
      this.somefunction();
    });

以下是单元测试解决方案:

index.js

class-SomeClass{
skipToBotHandler(){
const skipNav=document.querySelector('.skipNav');
skipNav.addEventListener('单击',()=>{
这个.skiplingfocushandler();
});
}
SkiplingFocusHandler(){}
}
导出{SomeClass};
index.test.js

从“/”导入{SomeClass};
描述('60014903',()=>{
之后(()=>{
开玩笑。恢复记忆();
jest.resetAllMocks();
});
它('应该通过',()=>{
jest.spyOn(SomeClass.prototype,“SkiplingFocushandler”);
常数mSkipNav={
addEventListener:jest.fn().mockImplementationOnce((事件,处理程序)=>{
handler();
}),
};
document.querySelector=jest.fn().mockReturnValueOnce(mSkipNav);
const instance=new SomeClass();
skipToBotHandler();
expect(document.querySelector).toBeCalledWith('.skipnav');
expect(mSkipNav.addEventListener).toBeCalledWith('click',expect.any(函数));
expect(instance.skiplingfocushandler).toBeCalledTimes(1);
});
});
100%覆盖率的单元测试结果:

通过src/stackoverflow/60014903/index.test.js(10.203s)
60014903
✓ 应通过(9ms)
----------|----------|----------|----------|----------|-------------------|
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s|
----------|----------|----------|----------|----------|-------------------|
所有文件| 100 | 100 | 100 | 100 ||
index.js | 100 | 100 | 100 | 100 ||
----------|----------|----------|----------|----------|-------------------|
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:11.538秒
源代码: