Mocha,CoffeeScript,Zombie JS,Tim​​eout?

时间:2012-07-19 09:09:56

标签: node.js timeout coffeescript mocha zombie.js

我遇到了一个奇怪的问题,我无法弄清楚它为什么会这样做。

我正在使用express-coffeescript作为框架,mocha用于测试以及用于浏览器测试的should,chai和zombiejs。

 request = require 'request'
 Browser = require 'zombie'
 assert  = require 'assert'
 chai    = require 'chai'  
 should  = require 'should'
 expect  = chai.expect
 chai.should

 browser = new Browser()

 describe 'GET /login', ->

    it 'should login a user successfully', (done) ->
        browser.on "error", -> 
             console.log "Error"

        browser.visit "http://localhost/test-laravel/public/login",  (browser),  ->

             browser.fill "username", "TheHydroImpulse"
             browser.fill "password", "SomePassword123"
             browser.pressButton "login", ->
                  console.log browser.location.pathname
                  should.equal "randomTextHere", "/test-laravel/public/dashboard"

此代码运行良好,运行时测试失败

mocha test --compilers coffee:coffee-script -R spec

关于这个或问题的奇怪之处在于我通过了测试。

should.equal "/test-laravel/public/dashboard", "/test-laravel/public/dashboard"

测试应该通过,但由于2000ms的超时,它会挂起几秒而不是失败。我试着四处寻找,但似乎没有记录这个问题,或者这可能是我自己的错。几个小时前我刚开始学习咖啡脚本。

1 个答案:

答案 0 :(得分:3)

行后:

should.equal "/test-laravel/public/dashboard", "/test-laravel/public/dashboard"

调用方法:

done()

执行此操作向mocha发出测试已完成的信号。这必定是因为在Node.js平台上编写的大多数代码的异步特性。