在JsTestDriver中设置咖啡脚本单元测试

时间:2011-11-06 03:13:48

标签: javascript unit-testing coffeescript

我正在尝试使用 JsTestDriver CoffeeScript / JavaScript实现一个非常基本的单元测试。我有两个文件:

1。) lib / Greeter.coffee

greet = (name) ->
    "Hello #{name}"

2。)lib / GreeterTest.coffee

tests = {
    "Test 1": -> assertEquals("Hello World!", greet "World")
}

TestCase("Test for introducing the test framework", tests)

我的 jsTestDriver.conf 使用以下行定义了他们的路径:- lib/*.js但是,在执行测试时,我得到:Total 0 tests (Passed 0; Fails: 0; Errors: 0)

我确信,可以找到测试,因为插入明显的程序错误会导致检测到具体文件中的错误。同时插入警报调用会导致预期的行为:在捕获的浏览器中,我看到警报消息框

我错过了什么吗?如何调试这样的东西?


虽然有以下工作:

TestCase("Test case 1", {

    testGreet: ->
        greeter = new Greeter
        assertEquals("Hello World!", greeter.greet "World")
})

class @Greeter

   constructor: ->

   greet: (name) ->
        return "Hello #{name}!"

如果两个文件都位于同一文件夹中,则可以删除@

2 个答案:

答案 0 :(得分:3)

请参阅此问题:ReferenceError: CoffeeScript + JsTestDriver + Qunit。你有同样的问题,因为greet =定义了一个在Greeter.coffee之外不可见的局部变量。将其更改为window.greet =@greet =

但是,这并不能解释Total 0 tests问题。我对JsTestDriver并不熟悉,但在this page上,建议测试名称必须以“test”开头 - 是否可以忽略大写的名称"Test 1"?尝试将其更改为"test1"

答案 1 :(得分:1)

确保当您运行java -jar $JSTESTDRIVER -tests all时,您在某个目录中作为测试,这应该处理“总0测试”问题。我遇到了同样的问题。