JEST:单元测试Javascript/Jquery
嗨,我想使用Jest和其中的click函数对我的javascript代码进行单元测试 swipe.jsJEST:单元测试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
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不是函数请检查上述注释。