我正在尝试使用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然而,当执行测试时,我得到:总共0次测试(通过0;失败:0;错误:0)
我确信,可以找到测试,因为插入明显的程序错误会导致检测到具体文件中的错误.同时插入警报调用会导致预期的行为:在捕获的浏览器中,我看到警报消息框
我错过了什么吗?怎么会这样调试?
虽然有以下工作:
TestCase("Test case 1", {
testGreet: ->
greeter = new Greeter
assertEquals("Hello World!", greeter.greet "World")
})
和
class @Greeter
constructor: ->
greet: (name) ->
return "Hello #{name}!"
如果两个文件都位于同一文件夹中,则可以删除@
解决方法:
看到这个问题:ReferenceError: CoffeeScript + JsTestDriver + Qunit.你有同样的问题,因为greet =定义了一个在Greeter.coffee之外看不到的局部变量.将其更改为window.greet =或@greet =.
但是,这并不能解释Total 0测试问题.我对JsTestDriver并不熟悉,但是在this page,它建议测试名称必须以“test”开头 – 是否可以忽略大写的名称“Test 1”?尝试将其更改为“test1”.