请考虑以下代码:
it('Test logout', function (done) {
async.each(config.www, function (url, callback) {
var healthCheck = url + '/'
chai.request(url).get('/')
.then(function (res) {
expect(res, healthCheck).to.have.status(200);
expect(res.text.indexOf(url + '/logout?type=user">Log out</a>'), 'Logout is incorrect').to.be.greaterThan(0);
callback();
})
.catch(function (err) {
callback(err);
})
}, done);
});
问题是我需要设置一个cookie来绕过一个启动页面。 关于如何实现这一目标的任何想法?
答案 0 :(得分:6)
这应该有效:
chai.request(url)
.get('/')
.set('Cookie', 'cookieName=cookieValue;otherName=otherValue')
.then(...)
Cookie会以“Cookie”键的标题值发送到服务器,因此您只需手动设置它们即可。
它适用于我的mocha和chai-http,我能够在我的koajs v2 app中重现cookie值
答案 1 :(得分:0)
为了增加佩德罗的答案,我需要将会话ID设置为cookie。为此,我使用stringify在内部对象上生成cookie数据并使用&#34; cookieName =&#34;。
const cValue = "cookieName=" + JSON.stringify({sessionId: sessionId});
chai.request(url)
.get("/userData")
.set('Cookie', cValue);
.then(...)