Нужна помощь в ожидаемых условиях, так как мне нужно сохранить JSON и проверить длину объекта в запросе вызова - PullRequest
0 голосов
/ 06 ноября 2019

Я работаю над автоматизацией Protractor, где мне нужно сохранить JSON после нескольких действий в браузере. Затем я проверяю длину объекта, но я видел, что при задании в setTimeout не работают ни консольные, ни ожидаемые условия.

Консольные операторы и операторы ожидания работают, если не заданы в setTimeout, но ответ JSONасинхронный еще до действий.

test_speck.js:

it('Verify the json', function () {
 this.commonfunc.checkJSON();
}

common_functions.js:

checkJSON: function(){
setTimeout(function(){
 var request = require('request');

 request('https://jsonplaceholder.typicode.com/users', function (error, response, body){ 
  if (!error && response.statusCode == 200){
   var importedJSON = JSON.parse(body);
   console.log('Length of importedJSON : ' + importedJSON.length);
   expect(importedJSON.length).toBeGreaterThan(0);
  }
 }
},90000);
}

Факт: спецификация передается без каких-либо операторов console.log или ожидаемого. Ожидаемое: консоль и ожидаемая статистика будут работать

1 Ответ

0 голосов
/ 10 ноября 2019

Передайте обратный вызов, и он должен работать.

describe('SO Question 58726564', () => {
  it('Verify the json', (done) => {
    var request = require('request');

    request('https://jsonplaceholder.typicode.com/users', function (error, response, body) {
      if (!error && response.statusCode == 200) {
        var importedJSON = JSON.parse(body);
        console.log('Length of importedJSON : ' + importedJSON.length);
        expect(importedJSON.length).toBeGreaterThan(10);
      }
      done()
    })
  })
})
...