1
目前我正在研究用CoffeeScript和JsTestDriver進行TDD,但是我被卡在JsTestDriver引發的ReferenceError上。ReferenceError:CoffeeScript + JsTestDriver + Qunit
一些信息:
- 使用的IntelliJ JsTestDriver插件
- 測試透過Chrome
- 配置的JsTestDriver相同的方式,於:http://code.google.com/p/js-test-driver/wiki/QUnitAdapter
- 編寫測試中的CoffeeScript
- 的CoffeeScript被編譯爲javascript並在測試運行之前放入已配置的目錄中
配置
server: http://Mark-PC:9876/capture
load:
- js/lib/main/*.js
- js/lib/test/sinon.js
- js/lib/test/qunit.js
- js/lib/test/equiv.js
- js/lib/test/QUnitAdapter.js
- js/coffee/main/controllers/*.js
- js/coffee/main/models/*.js
- js/coffee/test/controllers/*.js
控制器
class PortfolioController extends Backbone.Controller
constructor: ->
test: (a, b) ->
return a + b
測試代碼
module("PortfolioController", {
setup: -> @routeSpy = sinon.spy()
teardown: -> window.location.hash = ""
})
test 'indexRoute', ->
c = new PortfolioController
equals c.test(1, 1), 2, "1 + 1 = 2"
問題
JsTestDriver拋出一個錯誤
ReferenceError: PortfolioController is not defined
ReferenceError: PortfolioController is not defined
at Object. (http://mark-pc:9876/test/js/coffee/test/controllers/PortfolioController.test.js:12:5)
at [object Object].test indexRoute (http://mark-pc:9876/test/js/lib/test/QUnitAdapter.js:40:15)
嘗試:
- 卸下的依賴關係如jQuery,骨幹等
- 移除Qunit適配器和jstestdriver斷言 試圖
- 已添加測試本身內部一個類,然後它的工作
似乎有些有點出口問題或原型衝突?
感謝在班級名稱前添加@這樣做的訣竅:) – 2011-06-05 19:25:36