繁体   English   中英

茉莉花节点不等待主体完成

[英]jasmine-node doesnt wait for body to be done

我目前能够通过测试

expect(response.statusCode).toEqual(200)

但是在下面做这条线

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

给了我一个未定义的。 console.log(body) 然而给出了身体

这一切看起来像这样:

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()
        })  
    })
 )}

这可能是显而易见的,但真的很感激任何帮助!!

您应该使用 JSON.parse 来解析正文,因为正文参数的类型是字符串。

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

请注意,您的服务器必须发送格式良好的 JSON 格式对象

{"name":"erilcompa"} 

你的代码应该是这样的:

var request = require("请求"); 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();
        })  
    })
)}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM