如何测试/模拟以下内容:

问题描述 投票:0回答:2

这是我对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/');
});
javascript reactjs unit-testing jestjs
2个回答
0
投票

测试数据集

您将无法使用当前实现测试三元条件的两个分支。

这是因为数据集的值将在您导入时解析。以后无法使用id=test添加元素并希望更新值。

为了获得100%的覆盖率,您必须导出一个函数:

export function getDataSet(){
  return document.getElementById('test') 
    ? document.getElementById('test').dataset 
    : {};
} 

这使得这个可测试。

测试SERVICE_URL

正如其他人提到的那样,你不能做得更好

expect(SERVICE_URL).toBe('http://localhost:/');

测试常量值只是为了它而进行测试。除了确保这个常数不会被修改而没有“你确定吗?”旗帜,这没有带来任何价值。

一些评论

实现100%的测试覆盖率是导致脆弱测试发展的一个弱点。这种纯粹主义对你有害。

如果真的想要达到这个闪亮的100%,那么最好从测试覆盖中删除虚拟代码。


0
投票

试试这个,这应该声明你的SERVICE_URL包含你期望的值:

describe ( " Service URL ", () =>{
    it ( ' should output ', () => {
        expect(SERVICE_URL).toBe('http://localhost:/');
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.