Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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 如何为自定义库取笑mock_Javascript_Unit Testing_Mocking_Jestjs - Fatal编程技术网

Javascript 如何为自定义库取笑mock

Javascript 如何为自定义库取笑mock,javascript,unit-testing,mocking,jestjs,Javascript,Unit Testing,Mocking,Jestjs,abc.js 我想为函数编写一个测试。我想嘲笑这个结果 _validator.fullValidation(formInfo) 如何模拟?您可以使用模拟@myCustomLib/validator包 例如 abc.js: 从'@myCustomLib/validator'导入{form}; const_validator=新的form.details.validator(); 函数示例FunctioniWantToTest(formInfo){ var error=_validator.full

abc.js

我想为函数编写一个测试。我想嘲笑这个结果 _validator.fullValidation(formInfo)

如何模拟?

您可以使用模拟
@myCustomLib/validator

例如

abc.js

从'@myCustomLib/validator'导入{form};
const_validator=新的form.details.validator();
函数示例FunctioniWantToTest(formInfo){
var error=_validator.fullValidation(formInfo);
如果(错误){
返回true;
}
返回false;
}
导出{sampleFunctionIWantToTest};
abc.test.js

从'@myCustomLib/validator'导入{form};
常量验证程序模拟={
fullValidation:jest.fn(),
};
开玩笑(
“@myCustomLib/validator”,
() => {
常量formMock={
详情:{
验证器:jest.fn(()=>validatorMock),
},
};
返回{form:formMock};
},
{virtual:true},
);
描述('62949328',()=>{
毕竟(()=>{
jest.resetAllMocks();
});
它('应该返回true',()=>{
const mError=新错误(“错误消息”);
validatorMock.fullValidation.mockReturnValueOnce(mError);
const{sampleFunctionIWantToTest}=require('./abc');
const actual=sampleFunctionIWantToTest();
expect(实际).toBeTruthy();
预计(表格、详情、验证者)被催缴的时间(1);
});
它('应该返回false',()=>{
validatorMock.fullValidation.mockReturnValueOnce(null);
const{sampleFunctionIWantToTest}=require('./abc');
const actual=sampleFunctionIWantToTest();
expect(实际).toBeFalsy();
预计(表格、详情、验证者)被催缴的时间(1);
});
});
100%覆盖率的单元测试结果:

PASS stackoverflow/62949328/abc.test.js(13.298s)
62949328
✓ 应返回true(6ms)
✓ 应返回false(1ms)
----------|---------|----------|---------|---------|-------------------
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s
----------|---------|----------|---------|---------|-------------------
所有文件| 100 | 100 | 100 | 100 |
abc.js | 100 | 100 | 100 | 100 |
----------|---------|----------|---------|---------|-------------------
测试套件:1个通过,共1个
测试:2次通过,共2次
快照:共0个
时间:15.161秒
jestjs版本:
“jest”:“^25.5.4”,

import { form } from '@myCustomLib/validator'
const _validator = new form.particulars.Validator()

function sampleFunctionIWantToTest(formInfo) {
   var error = _validator.fullValidation(formInfo)

   if(error) {return true}

   return false
}