使用Frisbyjs和测试的NodeJS POST请求
我测试的POST请求/ ABC / getme /页眉作为内容类型和在体内I M下方发送object.My代码登录:
describe('HTTP Method Test for app.js', function() {
var frisby = require('frisby');
frisby.post('http://localhost:8000/abc/getme/login', {
username:"myusername",
password:"mypassword"
}, {json: true})
frisby.addHeaders({
'Content-type':'application/json'
})
frisby.expectHeaderContains('content-type', 'application/json')
frisby.expectJSON({
method: 'POST'
}).toss();
});
而就像我的错误:
Failures:
1) HTTP Method Test for app.js encountered a declaration exception
Message:
TypeError: frisby.addHeaders is not a function
Stacktrace:
TypeError: frisby.addHeaders is not a function
at jasmine.Suite.<anonymous> (/home/srikanth/Desktop/qcs/QCS/server/spec/app_spec.js:8:20)
at Object.<anonymous> (/home/srikanth/Desktop/qcs/QCS/server/spec/app_spec.js:2:5)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
回答如下:
试试这个,它与弗里斯比的更新版本
var req = {
method: "post",
url: httpMode + "://" + url + "/v1/companies/" + companyId + "/accounts/login",
headers : {
"Accept": "application/json",
"content-type" : "application/json",
"Authorization": "Basic " + Buffer.from(username + ":" + password).toString("base64")
},
body: {}
};
frisby.globalSetup({
request: {
headers : req.headers
}
});
it("Test login_account_spec", function(done){
frisby.post(req.url)
.expect("status", 200)
.expect("header", "content-type", "application/json; charset=utf-8")
.expect("jsonTypes", "data", {
"user_id": Joi.string(),
"role": Joi.string()
})
.then(function(res) {
var body = res.body;
body = JSON.parse(body);
expect(body.data.role).toBeDefined();
expect(body.data.user_id).toHaveLength(24);
})
.then(function(res) {
record.createLogFile("login_account_spec" + dateTime, null, req, res);
})
.done(done);
});