2016-10-14 2 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