首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mocha和Chai承诺的超时

Mocha和Chai承诺的超时
EN

Stack Overflow用户
提问于 2015-02-25 03:54:55
回答 1查看 1.3K关注 0票数 0

这是一个我认为应该有效的测试。

代码语言:javascript
复制
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' )
        })

    })

})

下面是函数

代码语言:javascript
复制
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 ) )
        })
    })
}

当我在我的应用程序中调用这个函数,并使用node-theseus调试器时,我看到第8行的函数被触发(.then( function ( data ) { ...)。

但是,当我使用调试器运行Mocha时,我发现该函数或任何其他函数都不会触发。我只在第4行和第5行看到一个调用触发。测试是使用与我在应用程序前端使用的token参数完全相同的LONG-STRING完成的。

为什么Mocha和node看到我的应用程序的方式会有差异,我如何才能让这个测试工作?

EN

回答 1

Stack Overflow用户

发布于 2015-02-25 10:28:03

问题是应用程序实际上并没有运行,我需要像app = require( '../server.js' )一样启动它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28705050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档