首页 > 解决方案 > 如果条件值取决于 sessionStorage,我如何使用 jest if 分支进行测试

问题描述

我有这段代码要测试:

selectTab() {
    const tab = localStorage.getItem('moduleTab');
    if (tab != null) {
        this.querySelector('core-tabs').active = {key: 'id', value: tab};
        this.renderTabs(tab);
    } else {
        this.querySelector('core-tabs').active = {
            key: 'id',
            value: 'modules',
        };
        this.renderTabs('modules');
    }
}

这是测试的结果:

在此处输入图像描述

我只能测试else分支,你如何测试if分支?

标签: javascriptjestjs

解决方案


为了测试 if 分支,您需要有一个等于 null 的选项卡。为此,您需要清除将清理 sessionStorage 的应用程序存储,然后您的 sessionStorage.getItem('moduleTab') 将为空。(我想你没有在任何地方添加 moduleTab )。

否则,您可以更改行
const tab = window.sessionStorage.getItem('moduleTab'); 到 const tab = null;

然后您将测试 if 分支


推荐阅读