2016-12-19 57 views
1

我試圖設置node-jasmine第一次測試。目前我只是想設置一個簡單的測試,看看索引返回狀態200.節點茉莉花沒有失敗時,預期

它似乎工作,但我注意到無論我改變狀態號碼,它永遠不會失敗,例如期待狀態666,但我沒有得到一個錯誤:

const request = require("request") 
const helloWorld = require("../app.js") 
const base_url = "http://localhost:3002/" 

describe("Return the index page", function() { 
    describe("GET /", function() { 
    it("returns status code 200", function() { 
     request.get(base_url, function(error, response, body) { 
     expect(response.statusCode).toBe(666) 
     done() 
     }) 
    }) 
    }) 
}) 

將返回:

Finished in 0.009 seconds 
1 test, 0 assertions, 0 failures, 0 skipped 

當我期望的失敗在這裏。

回答

1

您需要將done回調作爲參數包含在測試函數中。

例如:

it("returns status code 200", function(done) { 
    request.get(base_url, function(error, response, body) { 
    expect(response.statusCode).toBe(666) 
    done(); 
    }) 
}) 

沒有此,測試是異步請求返回之前完成。

0

雖然它看起來像你找到了你的答案,我來到這裏與類似的問題。我的問題是請求失敗,斷言從未達到。一旦我添加了像下面這樣的錯誤消息,我發現了我的問題!

我是Jasmine的新手,但在測試中生成的異常不會更明顯或更明顯,因此如果任何人有關於如何更好地處理的反饋,請告訴我。

const request = require("request") 
const helloWorld = require("../app.js") 
const base_url = "http://localhost:3002/" 

describe("Return the index page", function() { 
    describe("GET /", function() { 
    it("returns status code 200", function() { 
     request.get(base_url, function(error, response, body) { 
     if (error) 
      console.log("Something borked: ", error); 

     expect(response.statusCode).toBe(666) 
     done() 
     }) 
    }) 
    }) 
})