javascript - 如果条件值取决于 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分支?
解决方案
为了测试 if 分支,您需要有一个等于 null 的选项卡。为此,您需要清除将清理 sessionStorage 的应用程序存储,然后您的 sessionStorage.getItem('moduleTab') 将为空。(我想你没有在任何地方添加 moduleTab )。
否则,您可以更改行
const tab = window.sessionStorage.getItem('moduleTab'); 到 const tab = null;
然后您将测试 if 分支
推荐阅读
- amazon-web-services - 如何使 aws sagemaker 中的这个 IAM 角色错误消失?
- opencv - 错误:(-215:断言失败)totalSampleCount > 0 in function 'GMM::endLearning'
- mysql - MySQL 使用带有 IN 子查询的 CASE WHEN
- inno-setup - 在 Inno Setup 中使用 ISSI(添加背景图像)时实现事件函数 InitializeWizard:重复标识符“INITIALIZEWIZARD”
- git - 为什么当我只写一些代码时我的 .git 总是更大?
- sql-server - 无法使用 FreeTDS 和 ODBC (raspberry pi raspbian) 连接到 SQL Server
- python - 如何将日期列表转换为字符串列表
- powershell - cURL 到 PowerShell - --data 中的双哈希表?
- java - 如何将 Date.getTime() 转换为小时并计算差异
- javascript - 在 Dialogflow 中添加和删除购物车中的商品