我打电话给API:
curl -X PATCH --header' Content-Type:application / json' --header'授权:Bearer 863e2ddf246300f6c62ea9023d068805' -d' 1' ' http://asdasd.com/api/loyalty/v1/Accounts/6064361727001553966/Cards'
我想编写一个chai请求来测试我的API。 我写了这个:
describe('/PATCH Patch a card with a Status variable inactive test', () => {
it('it should GET a sample error json response ', (done) => {
chai.request(app)
.patch('/loyalty/v1/cards/6064361727001553966')
.send({"cardStatus": "1" })
.end((err, res) => {
res.should.have.status(200);
done();
});
});
});
但是通过这种方式,我通过了" 1"值类似于cardStatus参数的值。在API调用中我只有这个
-d' 1'
如何在chai请求中重现这一点? 有一种方法可以在没有参数键的请求体中传递此参数吗?
答案 0 :(得分:0)
我找到了解决方案。 我把它添加到我的.js文件中:
app.use(function(req, res, next){
if (req.is('text/*')) {
req.text = '';
req.setEncoding('utf8');
req.on('data', function(chunk){ req.text += chunk });
req.on('end', next);
} else {
next();
}
});
并使用req.text
从请求中获取字符串。
chai请求现在写成:
describe('/PATCH Patch a card with a Status variable active test', () => {
it('it should GET a sample error json response ', (done) => {
chai.request(app)
.post('/loyalty/v1/cards/6064361727001553966')
.set('content-type', 'text/plain')
.send('1')
.end((err, res) => {
res.should.have.status(200);
done();
});
});
});
我可以在命令行中调用我的api:
curl -v -X POST --header' Content-Type:text / plain' -d' 1' ' https://asdasd.com/api/loyalty/v1/cards/6064361727001553966'