这是我对file.js的所作所为我如何模拟以下内容并执行单元测试:谢谢
var dataset = document.getElementById('test') ?
document.getElementById('test').dataset : {};
export const SERVICE_URL = 'http://localhost:/';
使用JEST / ENZYME for REACTJS - 这些内容:file.test.js
const mockTrue = {SERVICE_URL};
describe ( " Service URL ", () =>{
it ( ' should output ', () => {
expect(mockTrue).toBeCalled('http://localhost:xxxxxxx/');
});
测试数据集
您将无法使用当前实现测试三元条件的两个分支。
这是因为数据集的值将在您导入时解析。以后无法使用id=test
添加元素并希望更新值。
为了获得100%的覆盖率,您必须导出一个函数:
export function getDataSet(){
return document.getElementById('test')
? document.getElementById('test').dataset
: {};
}
这使得这个可测试。
测试SERVICE_URL
正如其他人提到的那样,你不能做得更好
expect(SERVICE_URL).toBe('http://localhost:/');
测试常量值只是为了它而进行测试。除了确保这个常数不会被修改而没有“你确定吗?”旗帜,这没有带来任何价值。
一些评论
实现100%的测试覆盖率是导致脆弱测试发展的一个弱点。这种纯粹主义对你有害。
如果真的想要达到这个闪亮的100%,那么最好从测试覆盖中删除虚拟代码。
试试这个,这应该声明你的SERVICE_URL包含你期望的值:
describe ( " Service URL ", () =>{
it ( ' should output ', () => {
expect(SERVICE_URL).toBe('http://localhost:/');
});
});