量角器不等待$ http结果

时间:2014-10-17 20:53:47

标签: angularjs protractor

我面临以下问题,我无法摆脱它:

  1. 我有一个使用$http.post
  2. 调用API的Angular应用
  3. 此api调用对数据库进行更新并在返回前等待10秒
  4. 在通话结束后,浏览器会打开一个说明测试已终止的对话
  5. 当我尝试使用Protractor测试这个小应用程序时,测试在步骤3发生之前结束。这使我的测试失败,因为数据库中的更新并不总是完成。在测试期间,我看到对话在10秒后打开。

    这是一些代码。 我的Angular服务正在进行调用:

    $http.post(url, parameters).
            success(function (data) {
                $log.debug('Success in cldHttp data is "%s"', JSON.stringify(data));
                NotifSrv.translateMessage('commons.request.ok', [],
                    function (successMessage) {
                        data.errorMessage = null;
                        if (options.notifySuccess) NotifSrv.addNotification(successMessage, 'success');
                        if (cb) cb(undefined, data);
                    });
            });
    

    我的量角器测试:

    browser.get('/#!/activate-account.html?id=' + acc._id).then(function () {
                    browser.sleep(1000);
                    // Check that DB is updated
                    accountColl.findOne({
                        pseudo: 'MyActivatePseudo'
                    }, function (err, acc2) {
                        expect(err).to.not.exist;                                // OK
                        expect(acc2.activated).to.be.true;                       // KO the DB update has been done just after the findOne
                    });
                });
    

    我在量角器测试中尝试browser.sleep(),但它什么也没做。

    非常感谢你的帮助,因为我完全陷入了困境!

    JM。

0 个答案:

没有答案