5
我使用了答案https://stackoverflow.com/a/25149395/3330910中的代碼。如何等待來自量角器端的http請求的響應
我下一步:
it('HTTP request', function() {
var BackRequest = require('../helper/backRequest');
var request = new BackRequest();
page.visitPage();
request.setBaseUrl('http://localhost:8081');
// Step #1
request.get('/api/v1/one')
.then(function(result){
expect(result.statusCode).toBe(100); // An error #1
expect(result.bodyString).toContain('Some text');
});
// Step #2
expect(1).toBe(2); // an error #2
});
而且我爲了得到錯誤:
- 錯誤#2
- 錯誤#1
我怎麼能強迫量角器等待步驟#1,然後執行步驟#2。
現在只有我能做的就是鏈則()函數:
request.get('/api/v1/one')
.then(function(result){
expect(result.statusCode).toBe(100); // An error #1
expect(result.bodyString).toContain('Some text')
.then(function(result){
expect(1).toBe(2);
});
更新
所以,它最終與另一個方法:
describe('Scenarios', function() {
beforeEach(function() {
page.visitPage();
});
var chain = function() {
var defer = protractor.promise.defer();
defer.fulfill(true);
return defer.promise;
};
it('HTTP request', function() {
var BackRequest = require('../helper/backRequest');
var request = new BackRequest();
request.setBaseUrl('http://localhost:8081');
chain()
.then(function() {
// Save data
})
.then(function() {
request.get('/api/v1/one')
.then(function (result) {
expect(result.statusCode).toBe(200);
expect(result.bodyString).toContain('text');
});
})
.then(function() {
// Change and Save again
})
.then(function() {
request.get('/api/v1/one')
.then(function (result) {
expect(result.statusCode).toBe(200);
expect(result.bodyString).toContain('new text');
expect(result.bodyString).not.toContain('text');
});
});
});
});
謝謝Leo Gallucci尋求幫助。
感謝您的回覆。我使用了單獨的It()方法,但我想在一次測試中完成所有事情。有沒有辦法將任務添加到測試的controlFlow? – 2014-11-06 08:58:39