2016-10-14 4 views
1

を行わなければ、私は現在、ジャスミン・ノードは

expect(response.statusCode).toEqual(200) 

でテストに合格したが、右下の行を行うことができています

expect(body.name).toEqual('erilcompa') 

私に未定義を与えます。 にconsole.log(体が)しかし、それはすべて、このようになり体に

を与える:

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


describe("Routes Suite", function(){ 
    var customerID; 
    it("should make a quotation", function(done){ 

     request.post({url:base_url + '/customer', 
     form: { 
      'name': 'erilcompa', 
      'vatNr': '22', 
     }}, 
     function(error,response, body){ 

      expect(response.statusCode).toEqual(200) 
      expect(body.name).toEqual('erilcompa') 
      customerID = body.name 

      console.log(response.statusCode) 

      done() 
     }) 
    }) 
)} 

これはおそらく、明白なものですが、任意のヘルプは本当に感謝です!

答えて

1

body引数の型がstringであるため、JSON.parseを使用して本文を解析する必要があります。

{"name":"erilcompa"} 

あなたのコードは、このようにする必要があり、サーバーが整形JSON形式のオブジェクトを送信する必要があり

var bodyObj = JSON.parse(body); 
expect(bodyObj.name).toEqual('erilcompa'); 

注:

VAR要求は=( "リクエスト")を必要とします。 D: するvar BASE_URL = "http://127.0.0.1:3000/api"

describe("Routes Suite", function(){ 
    var customerID; 
    it("should make a quotation", function(done){ 

     request.post({url:base_url + '/customer', 
      form: { 
       'name': 'erilcompa', 
       'vatNr': '22', 
      } 
     }, 
     function(error,response, body){ 
      expect(response.statusCode).toEqual(200); 
      var bodyObj = JSON.parse(body); 
      expect(bodyObj.name).toEqual('erilcompa'); 
      customerID = body.name; 
      console.log(response.statusCode); 
      done(); 
     }) 
    }) 
)} 
+1

ああ、ありがとうございました – user6386278

関連する問題