2015-09-28 59 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. 
    }); 
}); 

希望它有幫助。