2015-09-28 61 views
0

我有简单的应用程序,我可以添加对话(Q/A)。我写的测试它 -

describe('New Survey:', function() { 
    it('should be added', function() { 
    browser.get('http://127.0.0.1:8090/#/newConversation'); 
    //picking a user 
    element.all(by.css('.form-control')).get(5).click(); 
    element(by.model('vm.user')).sendKeys('test'); 
    element(by.repeater('user in vm.users').row(6)).click(); 
//push some answers 
    var inputs = element.all(by.css('.form-control.validated')).each(function(element,index){ 
     element.sendKeys('test answer'); 
    }); 
    //and send it 
    element(by.id('submit')).click(); 
    element(by.css('.confirm')).click() 
      browser.waitForAngular(); 
    }); 
}); 

点击.confirm按钮 这种方法被称为

this.saveSurvey = function(conv) { 
     return $http.post('/conv', conv); 
    }; 

但量角器不要等到它这样做没有任何对话真正被发送到服务器,我怎么可能做出它要等到发布完成了?

+0

当您向服务器发送回复请求时,服务器是否收到回应? –

+0

它看起来像我不,可能是什么原因? – whd

+0

它的服务器必须回应。如果根本没有发送任何响应,那么你所能做的只是等待几秒钟,或者如果有一个元素在发布请求完成时发生变化(如成功通知或某处添加的一行文本等) ,你可以等待这种情况发生。 –

回答

1

您可以等待click()函数执行,并通过等待其承诺返回来发送您的发布请求。以下是如何 -

element(by.id('submit')).click().then(function(){ 
    element(by.css('.confirm')).click().then(function(){ 
     browser.sleep(2000); 
     //If your server returns a response in some way that the conversation is saved, you can verify it here. 
    }); 
}); 

希望它有帮助。