我有一个登录表单,现在我想进行集成测试,看看用户是否在成功登录后被重定向到另一个页面。
窗帘后面有授权服务,通过$window.location.href = 'home';
首先我有这个:
it('should redirect to /home if credentials are correct', function(){
browser().navigateTo('/login');
input('credentials.username').enter('testuser');
input('credentials.password').enter('testpass');
element('button.login').click();
expect(browser().location().path()).toBe("/home");
});
但是AngularJS测试都失败了 - 以Karma和浏览器中的跑步者身份运行。然后我想可能expect
太快了,我在它之前加了sleep(1)
。然后它很好,在测试运行器中我可以在断言之前看到页面刷新。
我认为如果我有location()。path('/ home')它可能会更好,但我更喜欢在这一步完全重新加载。
是否有任何设计/测试模式应该在这种情况下使用,所以我不必在预期的位置变化之前放置sleep()?
答案 0 :(得分:0)
您可以尝试使用此代码;
it('should redirect to /home if credentials are correct', function(){
browser().navigateTo('/login');
input('credentials.username').enter('testuser');
input('credentials.password').enter('testpass');
element('button.login').click();
browser().navigateTo('/home');
});