【发布时间】:2011-06-06 02:08:40
【问题描述】:
目前我正在使用 CoffeeScript 和 JsTestDriver 研究 TDD,但是我遇到了 JsTestDriver 抛出的 ReferenceError。
一些信息:
- 使用 IntelliJ JsTestDriver 插件
- 通过 Chrome 进行测试
- 配置 JsTestDriver 的方式与 on 相同: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、BackBone 等依赖项
- 移除 Qunit 适配器并尝试使用 jstestdriver 断言
- 在测试本身中添加了一个类,然后它就可以工作了
似乎是某种导出问题或原型冲突?
【问题讨论】:
标签: javascript tdd coffeescript qunit js-test-driver