我是超级测试的新手,我想找出一个简单的任务。我正在测试一个post请求,它分配了一个userkey,如下所示:
app.post('/game/:username', function(req, res){
var image = req.body.image;
var userName = req.params.username;
var userKey = '';
if(userName === 'player1'){
userKey = 'player_1_id';
} else if(userName === 'player2'){
userKey = 'player_2_id';
} else if(userName === 'player3'){
userKey = 'player_3_id';
} else {
userKey = 'player_4_id';
}}
当我试着测试这个时,我一直得到"res is not defined",我不知道为什么!
it('assigns a user key properly', function(done) {
request(app)
.post('/game/:username')
.send({
image: "image/png",
username: "player1",
userKey: ""
})
.expect(201)
.expect(res.body.should.have.property("userKey"))
// .expect()
.end(function(err, res) {
if (err) return done(err);
done();
})
})
您的错误是因为您没有在期望中定义res
。
您可以在github/supertest中查看.expect(function(res) {})
文档部分
试试这个:
it('assigns a user key properly', function(done) {
request(app)
.post('/game/:username')
.send({
image: "image/png",
username: "player1",
userKey: ""
})
.expect(201)
.expect(function(res){
res.body.userKey!=undefined
})
// .expect()
.end(function(err, res) {
if (err) return done(err);
done();
})
})