gpt4 book ai didi

javascript - Superagent 'request' 对象被重新定义为函数?

转载 作者:行者123 更新时间:2023-11-30 17:05:59 25 4
gpt4 key购买 nike

我正在尝试组装一个基于 supertest 的集成测试套件(由 Mocha 运行),它会 ping 我们的 REST API 并验证响应。

但是,我的测试似乎没有按预期运行:

var assert = require('assert')
var should = require('should')
var request = require('superagent')

var WEBSERVICE_BASE = 'localhost:8080/our-application/'

describe('Authentication', function() {
it('prevents user from logging in without credentials', function() {
console.log('###')
console.log('Starting with: ' + request)
console.log('###')
request.get(WEBSERVICE_BASE + 'auth', function(err, res) {
console.log('Error: ' + err)
if (err) {
throw err
}
res.should.have.status(401)
done()
})
})
})

我在控制台中看到的内容:

Craigs-MBP:mocha-tests Craig$ ./run.sh


Authentication
###
Starting with: function request(method, url) {
// callback
if ('function' == typeof url) {
return new Request('GET', method).end(url);
}

// url first
if (1 == arguments.length) {
return new Request('GET', method);
}

return new Request(method, url);
}
###
✓ prevents user from logging in without credentials

1 passing (12ms)

似乎 request 被重新定义为一个函数,而不是 superagent 对象?

测试应该通过,至少应该可以看到打印err参数的console.log

最佳答案

请记住,javascript 是异步的。 Superagent 在调用回调之前终止测试,除非您像这样将“完成”参数放在 it 方法中:

it('prevents user from logging in without credentials', function(done) {...

在调用回调之前,测试完成执行并且 mocha 终止。

关于javascript - Superagent 'request' 对象被重新定义为函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28012377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com