Mocha和Chai如约超时
Mocha and Chai-as-promised time out
这里有一个我认为应该有效的测试。
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行的函数会触发(.then( function ( data ) { ...
)。
但当我用调试器运行Mocha时,我看到该函数或任何其他函数都不会启动。我只看到4号线和5号线有火警。测试使用与我在应用程序前端使用的token
参数完全相同的LONG-STRING
。
为什么Mocha和node对我的应用程序的看法不同,以及我如何让这个测试发挥作用?
问题是应用程序实际上并没有运行,我需要像app = require( '../server.js' )
一样启动它。
相关文章:
- 使用优化器在慢速连接上加载main.js时需要js超时
- 如何在Mocha/Chai中测试JS原型(非模块)
- 当浏览器控制台未打开时,为什么要求会导致Internet Explorer 9超时
- 超时功能的性能
- 使用不同的超时对数组中的每个项目进行角度动画处理
- 设置第一次执行的超时
- node.js测试事件是否是在不使用超时的情况下使用sinon.js发出的
- 使用javascript和随机暂停/超时快速循环文本
- 如何在jQuery事件处理程序中存储和重用超时
- 当定位模式设置为“0”时,总是达到关于地理定位的超时;仅设备”;
- 为什么页面重新加载会使设置超时无效,以及如何避免
- 立即设置超时
- 在promise中为回调添加超时并拒绝
- 如何设置$.ajax请求的超时,并在超时时间过长时进行重做
- Node.js-chai是一个item对象
- iOS Safari Javascript设置超时问题
- 如何将嵌套设置超时转换为承诺
- XMLHTTPRequest脚本中没有internet连接和超时
- Mocha和Chai如约超时
- 当使用Mocha/Chai测试异步函数时,与期望值不匹配总是会导致超时