[英]How to write unit test cases for localStorage values in Jasmine
登录组件.ts
ngOnInit() {
this.createForm();
// loginStatus = 1 - redirect to search
// else - redirect to login
let loginStatus = localStorage.getItem('smtLogin');
if (loginStatus == '1') {
this.router.navigate(['/search']);
} else {
localStorage.setItem('smtLogin', '0');
}
}
login.component.spec.ts
it('it should navigate to search after user signs in', () => {
expect(localStorage.setItem('smtLogin', '1')).toBe('1'); // set the localstorage smtLogin to '1'
expect(localStorage.getItem('smtLogin')).toBe('1'); //get the loaclstotorage smtLogin value as'1'
expect(routerStub.navigate).toHaveBeenCalledWith(['/search']);
});
错误:
'"1"' 类型的参数不能分配给 'Expected' 类型的参数。
在声明之前使用的块范围变量“expect”。
预期的间谍导航已使用 [ [ '/search' ] ] 调用,但从未调用过。
你能帮我为这个语句写一个测试用例this.router.navigate(['/search']); 在 ngOnInit() 的 if() 块内
- '"1"' 类型的参数不能分配给 'Expected' 类型的参数:
expect(localStorage.setItem('smtLogin', '1')).toBe('1');
没有按照你的想法去做。 localStorage.setItem()
返回void
,它不能分配给类型Expected
-> string。 无需期待任何事情,只需执行localStorage.setItem('smtLogin', '1')
在声明之前使用的块范围变量“expect”。
预期的间谍导航已使用 [ [ '/search' ] ] 调用,但从未调用过。
在旁注中,在比较值时始终使用===
:
使用loginStatus === '1'
而不是loginStatus == '1'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.