【发布时间】:2014-12-08 05:20:03
【问题描述】:
我有一个身份验证服务,当用户成功登录时,它会将当前用户对象存储在 localStorage 中。该服务被许多其他服务使用。一个服务,比如 ABCService 调用身份验证服务中的一个方法来获取通信所需的令牌。 ABCService 的规范在 grunt 测试中失败,并说:
TypeError: 'null' is not an object (evaluating 'ABCConfig.getUser().token')
显然只有在用户登录时才设置令牌。如何摆脱这个?或者换句话说,如何测试这个对吗?
【问题讨论】:
-
您可以测试两种情况——一种是用户登录时,在测试前模拟登录,另一种是用户注销时,删除任何本地存储信息。
-
抱歉,我是使用 Angular 进行 Jasmine 测试的新手,我正在努力解决它!所以模拟登录对我来说是陌生的!
-
基本上你可以做的是使用
beforeEach函数设置一个假的localStorage条目。 -
怎么做?可以举个例子吗?
标签: javascript angularjs unit-testing jasmine angularjs-service