2014-11-05 31 views
5

https://stackoverflow.com/a/25149395/3330910 cevabından kodu kullandım.İleticinin yan tarafındaki http isteği yanıtı nasıl beklenir

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

Ve sırayla hataları olsun:

ben yapacağım

  • Hata #

Hata # nasıl iletki zorlayabilirsiniz 2 Adım # 1'i beklemek ve daha sonra # 2 adımını yapmak.

Şimdilik sadece Yapabileceğim sonra zincire() işlevleri:

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

}); 

Teşekkür:

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

Güncelleme Yani

, gelecek yaklaşımla biter Yardım için Leo Gallucci.

cevap

6

Adım 2. beklemek bir şey yok, çünkü hiçbir webdriver vaat orada sadece yaptığınız gibi then() zincirleme veya yolu Birlikte expect(1).toBe(2);

Sen yapışabilir ile mutlak sayılarını karşılaştırıyorsanız vardır hemen çözüme kavuşturulacağını tercih it() blokları ayrıdır:

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

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

BTW benim diğer answer yararlı buldum sevindim!

+0

Cevabınız için teşekkürler. Ayrı bir It() yaklaşımını kullandım, fakat her şeyi tek bir testte yapmak istiyorum. Testi kontrol etmek için görev eklemenin bir yolu var mı? –