Javascript 摩卡咖啡和柴咖啡如承诺的暂停
这是一个我认为应该有效的测试Javascript 摩卡咖啡和柴咖啡如承诺的暂停,javascript,node.js,unit-testing,mocha.js,chai,Javascript,Node.js,Unit Testing,Mocha.js,Chai,这是一个我认为应该有效的测试 var chai = require( 'chai' ), chaiAsPromised = require( 'chai-as-promised' ), assert = require( 'chai' ).assert, should = require( 'chai' ).should(), saveImage = require( 'helpers/save-image' ), Mocha = require( 'mo
var chai = require( 'chai' ),
chaiAsPromised = require( 'chai-as-promised' ),
assert = require( 'chai' ).assert,
should = require( 'chai' ).should(),
saveImage = require( 'helpers/save-image' ),
Mocha = require( 'mocha' ),
path = require( 'path' ),
getUser = require( 'helpers/get-user' )
describe( 'GetUser', function () {
describe( "getUser( token )", function() {
it( "should return a user's ID when given token", function() {
this.timeout( 4000 )
var token = "LONG-STRING"
return getUser( token ).should.eventually.include( 'ANOTHER-STRING' )
})
})
})
下面是函数
var User = require( '../models/userModel' ),
Q = require( 'q' )
module.exports = function getUser ( token ) {
return Q.Promise( function ( resolve, reject, notify ) {
User.findOne( { token: token } ).exec()
.then( function ( data ) {
if ( !data )
reject( new Error( "There was a problem getting the user. No user with that token." ) )
resolve( data.id )
}, function ( error ) {
reject( new Error( error ) )
})
})
}
当我在我的应用程序中调用这个函数,并使用节点theseus调试器时,我看到第8行的函数被激发(。然后(函数(数据){…
)
但是,当我使用调试器运行Mocha时,我看到该函数或任何其他函数都不会启动。我只看到第4行和第5行有一个调用启动。测试使用的是与我在应用程序前端使用的长字符串
完全相同的令牌
参数
为什么Mocha和node在查看我的应用程序的方式以及如何使此测试工作方面存在差异?问题是应用程序没有实际运行,我需要启动它,就像
app=require('../server.js')
将超时设置为this.timeout(999999);
@hbk35问题是应用程序没有运行,因此无法执行任何Mongoose命令。请参阅下面的答案。