2017-02-10 3 views
0

Я новичок в узле и с помощью модуля node.js request отправил HTTP-запрос в Google.Модуль запроса узла не получает ответа во время тестирования

Затем я использую тестовую библиотеку chai для проверки того, был ли запрос http успешным. Тест терпит неудачу, и я не могу понять, почему.

код ниже:

//validator.js 
var request = require('request') 

export function validateWeb(website) { 
    request('http://www.google.com', function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      console.log("Inside the successful callback!") //not being printed 
      return response.statusCode 
     } 
    }) 
} 

Испытание ниже:

//validator_spec.js 
import {validateWeb} from '../src/validator' 

describe ('Validator',() => { 
    describe ('correctly validates',() => { 
     it('existing site',() => { 
      const site = "http://www.google.com" 
      var result = validateWeb(site) 
      expect(result).to.equal(200) 
     }) 
    }) 
}) 

Что мне не хватает? Сам тест запускается и запускается, когда я запускаю npm test (но это утверждение не работает).

ответ

0

Ваш валидатор является асинхронным, так что вы должны предоставить и использовать функцию обратного вызова (или обещание):

//validator.js 
var request = require('request') 

export function validateWeb(website, callback) { 
    request(website, (error, response, body) => { 
     if (error) return callback(error) 
     callback(null, response.statusCode) 
    }) 
} 

Тогда в тесте:

//validator_spec.js 
import {validateWeb} from '../src/validator' 

describe ('Validator',() => { 
    describe ('correctly validates',() => { 
     it('existing site', (done) => { 
      const site = "http://www.google.com" 
      validateWeb(site, (err, result) => { 
       if (err) return done(err) 
       expect(result).to.equal(200) 
      }) 
     }) 
    }) 
}) 
+0

утверждение будет по-прежнему терпят неудачу. Простой «GET» на http://www.google.com получит ответ с HTTP-статусом: 302. –

+0

@NehalJWani. Библиотека 'request' по умолчанию переадресовывается. – idbehold

+0

Ох. Понимаю. Не знал этого. –

Смежные вопросы