2016-12-19 6 views
1

初めてnode-jasmineテストを設定しようとしています。現在のところ、インデックスを取得するとステータス200が返されることを確認するための簡単なテストを設定しようとしています。ノードジャスミンが期待通りに失敗しない

ステータスが正常に動作しているように見えますが、

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 

666は、私は失敗を得ることはありません。

答えて

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() 
     }) 
    }) 
    }) 
}) 
関連する問題