簡體   English   中英

節點請求模塊在測試期間未獲得響應

[英]Node request module not getting response during testing

我是node的新手,並使用node.js模塊請求向google 發送了一個http請求。

然后,我使用測試庫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時,測試本身已經啟動並正在運行(但是斷言失敗)。

您的驗證器是異步的,因此您需要提供和使用回調(或Promise):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM