Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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 如何模拟构造函数的链接函数的返回值?_Javascript_Node.js_Unit Testing_Jestjs_Mocking - Fatal编程技术网

Javascript 如何模拟构造函数的链接函数的返回值?

Javascript 如何模拟构造函数的链接函数的返回值?,javascript,node.js,unit-testing,jestjs,mocking,Javascript,Node.js,Unit Testing,Jestjs,Mocking,我需要使用jest模拟csvJsonArray的值 const csv = require('csvtojson') const csvJsonArray = await csv().fromFile(csvFilePath) 我试过以下方法 jest.mock('csvtojson', () => jest.fn()) const fromFile = jest.fn().mockReturnValue(commTemplateCsvJsonArray) csv.mockImplem

我需要使用jest模拟csvJsonArray的值

const csv = require('csvtojson')

const csvJsonArray = await csv().fromFile(csvFilePath)
我试过以下方法

jest.mock('csvtojson', () => jest.fn())
const fromFile = jest.fn().mockReturnValue(commTemplateCsvJsonArray)
csv.mockImplementation(() => ({fromFile}))
但这里csvJsonArray值为null


如何模拟构造函数的链接函数的返回值?

由于
csv().fromFile()
方法的返回值是一个
promise
,因此应该使用模拟解析值

例如

main.js

const csv=require('csvtojson');
异步函数main(){
const csvFilePath='./test.csv';
const csvJsonArray=await csv().fromFile(csvFilePath);
返回csvJsonArray;
}
module.exports={main};
main.test.js

const{main}=require('./main');
const csv=require('csvtojson');
开玩笑的模仿(“csvtojson”);
描述('65620607',()=>{
它('should pass',async()=>{
常量commTemplateCsvJsonArray=[1,2,3];
const fromFile=jest.fn().mockResolvedValue(commTemplateCsvJsonArray);
csv.mockImplementation(()=>({fromFile}));
常量实际值=等待主();
期望值(实际值).toEqual([1,2,3]);
期望(csv)。toBeCalledTimes(1);
expect(fromFile).toBeCalledWith('./test.csv');
});
});
单元测试结果:

 PASS  examples/65620607/main.test.js
  65620607
    ✓ should pass (4 ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |     100 |      100 |     100 |     100 |                   
 main.js  |     100 |      100 |     100 |     100 |                   
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        5.705 s