Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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
JEST:单元测试Javascript/Jquery_Javascript_Jquery_Unit Testing_Jestjs - Fatal编程技术网

JEST:单元测试Javascript/Jquery

JEST:单元测试Javascript/Jquery,javascript,jquery,unit-testing,jestjs,Javascript,Jquery,Unit Testing,Jestjs,嗨,我想使用Jest和其中的click函数对我的javascript代码进行单元测试 swipe.js export default class swipe { constructor() { this.init(); } init() { this.postRender(); } postRender() { const jqry = jQuery.noConflict(); (function (jqry) { jqry(d

嗨,我想使用Jest和其中的click函数对我的javascript代码进行单元测试

swipe.js

export default class swipe {
  constructor() {
    this.init();
  }

  init() {
    this.postRender();
  }

  postRender() {
    const jqry = jQuery.noConflict();
    (function (jqry) {
      jqry(document).ready(() => {
        jqry('#buttonID').on('click', () => {
          jqry('#navigation').addClass('blue');
        });
      });
    })(jqry);
  }
}

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

swipe.js

import$from'jquery';
导出默认类刷卡{
构造函数(){
this.init();
}
init(){
这是postrend();
}
postRender(){
$(文档).ready(()=>{
$('#buttonID')。在('单击',()=>{
$('导航').addClass('蓝色');
});
});
}
}
swipe.test.js

import Swipe from./Swipe';
从“jquery”导入美元;
开玩笑(
“jquery”,
() => {
const m$={on:jest.fn(),ready:jest.fn(),addClass:jest.fn()};
return jest.fn(()=>m$);
},
//如果已安装jquery模块,请删除此选项
{virtual:true},
);
描述('60190274',()=>{
它('单击按钮时应添加类',()=>{
$().ready.mockImplementationOnce((回调)=>callback());
$().on.mockImplementationOnce((事件,处理程序)=>handler());
新刷();
期望($)。与(文档)一起调用;
期望($)。使用(#buttonID')调用;
期望($)。使用(#导航)调用;
expect($().ready).toBeCalled();
expect($().on).toBeCalledWith('click',expect.any(函数));
期望($().addClass).toBeCalledWith('blue');
});
});
100%覆盖率的单元测试结果:

PASS stackoverflow/60190274/swipe.test.js
60190274
✓ 单击按钮时应添加类(6ms)
----------|---------|----------|---------|---------|-------------------
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s
----------|---------|----------|---------|---------|-------------------
所有文件| 100 | 100 | 100 | 100 |
swipe.js | 100 | 100 | 100 | 100 |
----------|---------|----------|---------|---------|-------------------
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:4.163s,估计5s

源代码:

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

swipe.js

import$from'jquery';
导出默认类刷卡{
构造函数(){
this.init();
}
init(){
这是postrend();
}
postRender(){
$(文档).ready(()=>{
$('#buttonID')。在('单击',()=>{
$('导航').addClass('蓝色');
});
});
}
}
swipe.test.js

import Swipe from./Swipe';
从“jquery”导入美元;
开玩笑(
“jquery”,
() => {
const m$={on:jest.fn(),ready:jest.fn(),addClass:jest.fn()};
return jest.fn(()=>m$);
},
//如果已安装jquery模块,请删除此选项
{virtual:true},
);
描述('60190274',()=>{
它('单击按钮时应添加类',()=>{
$().ready.mockImplementationOnce((回调)=>callback());
$().on.mockImplementationOnce((事件,处理程序)=>handler());
新刷();
期望($)。与(文档)一起调用;
期望($)。使用(#buttonID')调用;
期望($)。使用(#导航)调用;
expect($().ready).toBeCalled();
expect($().on).toBeCalledWith('click',expect.any(函数));
期望($().addClass).toBeCalledWith('blue');
});
});
100%覆盖率的单元测试结果:

PASS stackoverflow/60190274/swipe.test.js
60190274
✓ 单击按钮时应添加类(6ms)
----------|---------|----------|---------|---------|-------------------
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s
----------|---------|----------|---------|---------|-------------------
所有文件| 100 | 100 | 100 | 100 |
swipe.js | 100 | 100 | 100 | 100 |
----------|---------|----------|---------|---------|-------------------
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:4.163s,估计5s

源代码:

我对代码做了一些修改。添加了Jquery.noconflict。您的代码不起作用,表示类型错误:jQuery.noConflict不是一个函数请检查上面的注释。我对代码做了一些更改。添加了Jquery.noconflict。您的代码不起作用,表示类型错误:jQuery.noConflict不是函数请检查上述注释。