Superagent 'request' 对象正在被重新定义为函数?
Superagent 'request' object is being redefined as function?
我正在尝试组装一个基于 supertest
的集成测试套件(Mocha 的 运行),它会 ping 我们的 REST API 并验证响应。
但是,我的测试似乎没有像预期的那样 运行ning:
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
对象?
测试应该不会通过,至少应该看到 console.log
打印 err
参数。
记住,javascript 是异步的。除非您将 "done" 参数放在 it 方法中,否则 Superagent 在调用回调之前终止测试:
it('prevents user from logging in without credentials', function(done) {...
测试完成执行,mocha 在调用回调之前终止。
我正在尝试组装一个基于 supertest
的集成测试套件(Mocha 的 运行),它会 ping 我们的 REST API 并验证响应。
但是,我的测试似乎没有像预期的那样 运行ning:
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
对象?
测试应该不会通过,至少应该看到 console.log
打印 err
参数。
记住,javascript 是异步的。除非您将 "done" 参数放在 it 方法中,否则 Superagent 在调用回调之前终止测试:
it('prevents user from logging in without credentials', function(done) {...
测试完成执行,mocha 在调用回调之前终止。