在AngularJS E2E测试中测试位置变化的好方法是什么

时间:2013-08-06 19:07:51

标签: angularjs angularjs-e2e

我有一个登录表单,现在我想进行集成测试,看看用户是否在成功登录后被重定向到另一个页面。

窗帘后面有授权服务,通过$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()?

1 个答案:

答案 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');
});