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 module.export单元测试问题开玩笑_Javascript_Unit Testing_Jestjs - Fatal编程技术网

Javascript module.export单元测试问题开玩笑

Javascript module.export单元测试问题开玩笑,javascript,unit-testing,jestjs,Javascript,Unit Testing,Jestjs,我在一个页面上有两个函数,它们包含很多jQuery。代码如下 module.exports = function(property) { var data = decodeEntities(property) } function decodeEntities(encodedString) { let textArea = document.createElement('textarea'); textArea.innerHTML = encodedString;

我在一个页面上有两个函数,它们包含很多jQuery。代码如下

 module.exports = function(property) {
    var data = decodeEntities(property)
}

function decodeEntities(encodedString) {
     let textArea = document.createElement('textarea');
     textArea.innerHTML = encodedString;
     return textArea.value;
}
我需要为decodeEntities函数编写测试用例。但我并没有预先授权更改
module.exports=function(property)
此代码,因为它是从Handlebar模板调用的

现在,如何在不导出的情况下测试decodeEntities函数的单元测试?

您可以使用模块获取未导出的
decodeEntities
函数。例如

index.js

module.exports=函数(属性){
var数据=实体(财产);
};
函数解码实体(encodedString){
设textArea=document.createElement('textArea');
textArea.innerHTML=encodedString;
返回textArea.value;
}
index.test.js

const-rewre=require('rewre');
常数模=重新布线('./');
描述('60349818',()=>{
描述(“#解码实体”,()=>{
它('应该通过',()=>{
const mElement={innerHTML:'',value:'some value'};
const mCreateElement=jest.fn().mockReturnValueOnce(mElement);
修改集(“文件”{
createElement:mCreateElement,
});
const decodeEntities=mod.\uuuu get\uuuuu('decodeEntities');
const-actual=decodeEntities('encodedString');
expect(实际).toEqual(“某个值”);
expect(mCreateElement).toBeCalledWith('textarea');
});
});
});
单元测试结果:

PASS stackoverflow/60349818/index.test.js
60349818
#解码实体
✓ 应通过(4ms)
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:3.334秒
源代码: