angular - 如何以角度创建测试用例以检查本地存储中是否存在值
问题描述
我的component.ts文件
ngOnInit() {
if (localStorage.getItem('distanceUnit' + this.userMobile) == 'km') {
this.toggleSlider = false;
}
}
设置单位():无效{
if (this.toggleSlider) {
this.toggleSlider = false;
localStorage.setItem('distanceUnit' + this.userMobile, 'km');
} else {
this.toggleSlider = true;
localStorage.setItem('distanceUnit' + this.userMobile, 'mi');
}
}
我的测试用例在spec.ts 文件中
it('Toggle button should be false in case distance unit km', () => {
component.toggleSlider = false
expect(component.toggleSlider).toBe(false);
});
解决方案
检查以下代码以获取localStorage测试用例。
beforeAll( () => {
let data= {};
const myLocalStorage = {
getItem: (key: string): string => {
return key in store ? store[key] : null;
},
setItem: (key: string, value: string) => {
data[key] = `${value}`;
},
removeItem: (key: string) => {
delete data[key];
},
clear: () => {
data= {};
}
};
spyOn(localStorage, 'getItem')
.and.callFake(myLocalStorage .getItem);
spyOn(localStorage, 'setItem')
.and.callFake(myLocalStorage .setItem);
spyOn(localStorage, 'removeItem')
.and.callFake(myLocalStorage .removeItem);
spyOn(localStorage, 'clear')
.and.callFake(myLocalStorage .clear);
localStorage.setItem('localStorageKey', 'value')
})
推荐阅读
- google-bigquery - 我如何将结构插入(或修改)到 ARRAY
> 在 BigQuery 中? - selenium - 如何在 webdriver.io 中增加会话超时
- c# - TapGestureRecognizer 仅适用于屏幕上的某些位置
- flutter - 如何在颤动中将数据保存到 Firestore
- javascript - Express.static 不从公共目录中提取图像
- java - 将 Camunda 与 LDAP 集成
- ios - 无法更新 XCode:空间不足
- python - 如何在 RestrictedPython 中使用类
- excel - 组合多个 If 语句进行增长率计算
- java - 在 Spring 中将自动增量 @Id 限制为 6 位