【发布时间】:2014-11-06 19:32:37
【问题描述】:
我使用了答案https://stackoverflow.com/a/25149395/3330910中的代码。
接下来我做:
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 步。
目前我唯一能做的就是链接 then() 函数:
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 的帮助。
【问题讨论】:
标签: angularjs protractor