我正在通过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})这可以很好地工作,但是当我执行post请求时
Frisby.create(‘测试更新邮件’) .post('http://myapi/user/update',{ email:'newEmail@test.com',headers: header })
我从服务器上查看我的控制台,头文件显示为
{ '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附加到post标头并将其发送出去,但这也不起作用。有没有办法让cookie在post报头中发送?
发布于 2015-11-18 00:13:41
你有没有试过添加:
.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();
https://stackoverflow.com/questions/27975452
复制相似问题