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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 当测试对象和被测试对象位于不同的文件中时,模拟从其他文件导入的函数 我正在使用Jest测试框架 我将从myService.js文件测试服务myService 我正在为测试创建单独的文件,myService.spec.js位于同一文件夹中 方法myService.myMethod()使用helpers.js文件中的helpermyHelper()_Javascript_Unit Testing_Testing_Jestjs - Fatal编程技术网

Javascript 当测试对象和被测试对象位于不同的文件中时,模拟从其他文件导入的函数 我正在使用Jest测试框架 我将从myService.js文件测试服务myService 我正在为测试创建单独的文件,myService.spec.js位于同一文件夹中 方法myService.myMethod()使用helpers.js文件中的helpermyHelper()

Javascript 当测试对象和被测试对象位于不同的文件中时,模拟从其他文件导入的函数 我正在使用Jest测试框架 我将从myService.js文件测试服务myService 我正在为测试创建单独的文件,myService.spec.js位于同一文件夹中 方法myService.myMethod()使用helpers.js文件中的helpermyHelper(),javascript,unit-testing,testing,jestjs,Javascript,Unit Testing,Testing,Jestjs,是否有可能以某种方式模拟此myHelper() myService.js: 从“/myHelper.js”导入{myHelper}; 导出类MyService{ myMethod(){ const myVar=myHelper(42);//我需要模拟这个 } } myService.spec.js: 从“/MyService”导入{MyService}; 描述('我的测试',()=>{ 它('应该正常工作',()=>{ expect(myService.myMethod()).toBe(24)

是否有可能以某种方式模拟此
myHelper()

myService.js

从“/myHelper.js”导入{myHelper};
导出类MyService{
myMethod(){
const myVar=myHelper(42);//我需要模拟这个
}
}
myService.spec.js

从“/MyService”导入{MyService};
描述('我的测试',()=>{
它('应该正常工作',()=>{
expect(myService.myMethod()).toBe(24);
});
});
您可以使用模拟
myHelper
模块和
myHelper
函数

例如。
myService.js

从“/myHelper”导入{myHelper};
导出类MyService{
myMethod(){
const myVar=myHelper(42);
返回myVar;
}
}
myHelper.js

导出函数myHelper(n){
返回n;
}
myService.test.js

从“/MyService”导入{MyService};
从“/myHelper”导入{myHelper};
jest.mock('./myHelper',()=>{
返回{
myHelper:jest.fn(),
};
});
描述('我的测试',()=>{
它('应该正常工作',()=>{
myHelper.mockReturnValueOnce(24);
const myService=new myService();
expect(myService.myMethod()).toBe(24);
});
});
100%覆盖率的单元测试结果:

PASS stackoverflow/61370607/myService.test.js(13.137s)
我的测试
✓ 应能正常工作(3ms)
--------------|---------|----------|---------|---------|-------------------
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s
--------------|---------|----------|---------|---------|-------------------
所有文件| 100 | 100 | 100 | 100 |
myService.js | 100 | 100 | 100 | 100 |
--------------|---------|----------|---------|---------|-------------------
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:15.028秒

源代码:

你太完美了!这么详细的解释,这个很好用!我已经阅读了文档,尝试了很多,但是我错过了这一行:
import{myHelper}from./myHelper'。现在我将编写更好的测试,谢谢!
|
 -- myService.js
 -- myService.spec.js
 -- myHelper.js