Javascript 如何为自定义库取笑mock
abc.js 我想为函数编写一个测试。我想嘲笑这个结果 _validator.fullValidation(formInfo) 如何模拟?您可以使用模拟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
@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
}