2015-11-02 58 views
1

我正在爲使用Node.js和Express構建的應用程序編寫Jasmine測試。第一個測試是看看該應用程序是否響應了200的狀態碼。我正在通過this tutorial工作,告訴你如何做到這一點,但我碰到了一個障礙。用Jasmine測試Node應用程序的狀態:200

jasmine-node將不會運行測試。沒有任何失敗;它只是不提供報告。顯然,this is a known bug.

看着jasmine-node project,但它並沒有在一年內更新!看看主茉莉花項目,我看到it now has support for Node!那麼,已經放棄了jasmine-node,有利於將支持節點添加到jasmine?在安裝jasmine並針對規格運行後,我現在遇到了一個新問題。如果運行的是jasminenpm test,而不是讓茉莉花測試失敗,我得到

Started 

TypeError: Cannot read property 'statusCode' of undefined 

這裏是我的規格文件:

var request = require("request"); 
var base_url = "http://localhost:3000/"; 

describe("Hello World Server", function() { 
    describe("GET /", function() { 
    it("returns status code 200", function(done) { 
     request.get(base_url, function(error, response, body) { 
     expect(response.statusCode).toBe(200); 
     done(); 
     }); 
    }); 

    it("returns Hello World", function(done) { 
     request.get(base_url, function(error, response, body) { 
     expect(body).toBe("Hello World"); 
     done(); 
     }); 
    }); 
    }); 
}); 

回答

0

看起來你沒有得到有效的響應。你應該在你的回調函數檢查出error

request.get(base_url, function(error, response, body) { 

    // Check for error 
    if(error){ 
     console.log(error); 
     // Probably assert a failure here. 
    } 

    expect(response.statusCode).toBe(200); 
    done(); 
}); 

使用console.log檢查錯誤後,你可能不希望刪除的記錄,並與一些茉莉花邏輯取代它的錯誤檢查。