2012-07-19 25 views
1

我遇到了一個奇怪的問題,我不知道它爲什麼這樣做。Mocha,CoffeeScript,ZombieJS,Tim​​out?

我使用express-coffeescript作爲框架,用於測試瀏覽器測試的應用,chai和zombiejs的mocha測試。

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而失敗。我試着四處搜尋,但似乎沒有任何文件記錄這個問題,或者這可能是我自己的錯。幾小時前我剛剛開始學習咖啡劇本。

回答

3

線之後:

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

呼叫的方法,包括:

done() 

這樣做信號摩卡該測試已經完成。由於Node.js平臺上編寫的大多數代碼的異步特性,這必然會發生。

+0

一個簡單的解決方案。謝謝! – Daniel 2012-07-21 02:27:01