这是我拥有的 file.js 我该如何模拟以下内容并执行单元测试: 谢谢
var dataset = document.getElementById('test') ?
document.getElementById('test').dataset : {};
export const SERVICE_URL = 'http://localhost:/';
将JEST / EZNYME用于REACTJS-类似于以下内容: file.test.js
const mockTrue = {SERVICE_URL};
describe ( " Service URL ", () =>{
it ( ' should output ', () => {
expect(mockTrue).toBeCalled('http://localhost:xxxxxxx/');
});
答案 0 :(得分:0)
尝试此操作,这应该断言您的SERVICE_URL包含您期望的值:
describe ( " Service URL ", () =>{
it ( ' should output ', () => {
expect(SERVICE_URL).toBe('http://localhost:/');
});
});
答案 1 :(得分: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%达到这一目标,最好从测试覆盖范围中删除伪代码。