2014-11-05 2 views
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 
}); 

그리고 순서대로 오류를 얻을 :

나는 다음에 무엇을

  • 오류 번호는
  • 1

오류 번호가 어떻게 각도기를 강제 할 수 2 1 단계를 기다린 후 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'); 
        }); 
      }); 
    }); 

}); 

감사 :

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); 
     }); 

업데이트 그래서

, 다음 방법으로 끝 도움을 받으려면 Leo Gallucci

답변

6

단계 # 2를 기다리는 아무것도 없기 때문에, 더 webdriver 약속이 당신은 단순히 당신이 그랬던 것처럼 then() 체인 또는 방법 I에 expect(1).toBe(2);

당신은 스틱 수와 절대 숫자를 비교하는이없는 즉시 해결됩니다 선호는 it() 블록 분리 :

it('HTTP request', function() { 
    // Step #1 code ... 
}); 

it('keeps testing other things in this step #2', function() { 
    expect(1).toBe(2); 
}); 

가 BTW 난 당신이 내 다른 answer 유용하다고 다행이야!

+0

답장을 보내 주셔서 감사합니다. 나는 별도의 It() 접근 방식을 사용했지만 한 가지 테스트에서 모든 것을하고 싶다. 테스트 흐름을 제어하는 ​​작업을 추가하는 방법이 있습니까? –

관련 문제