我通过frisby.js在我的api上运行测试。当我登录用户时,我正在设置来自响应的标头cookie,如此
.after(function(err, res, body){
header: { content-type: 'application/json',
Cookie: res.headers['set-cookie']
...}
然后在我接下来的测试中写下
frisby.create('test with cookie')
.get('http://myapi/',{ headers: header})
这样可行,但是当我发布帖子请求时
frisby.create('测试更新电子邮件') .post(' http://myapi/user/update',{ 电子邮件:' newEmail@test.com', 标题:标题 })
我从服务器看我的控制台,标题是
{ 'content-type': 'application/x-www-form-urlencoded',
'host': config.baseDomain,
'content-length': '269',
'connection': 'keep-alive'
}
我想也许frisby检查应用的标头是否是正确的类型,并更新没有Cookie的标头,所以我创建了一个单独的postHeader
var postHeader = { 'content-type': 'application/x-www-form-urlencoded',
'host': config.baseDomain,
'content-length': '269',
'connection': 'keep-alive'
};
并将Cookie附加到帖子标题并通过它发送,但这也不起作用。 我可以用任何方式获得在帖子标题中发送的cookie吗?
答案 0 :(得分:0)
您是否尝试过添加:
.addHeader('Content-Type', 'application/json')
如下所示:
frisby.create('test update email')
.addHeader('Content-Type', 'application/json')
.post('http://myapi/user/update', { email: 'newEmail@test.com'}, {json: true})
.expectStatus(200)
.toss();