作者:糖果

Busted是Lua的单体测试工具。
去官网Github看一下,也支持Moonscript的单体测试。

moonunit.moon

describe 'moonscript tests', ->
  it 'works', ->
    assert.are.equal true, true
    return
  return
return

Describe关键字:描述了一组单元测试。
It关键字: 是对一个Case的描述。

把Moonscript脚本,翻译成Lua脚本。
moonc moonunit.moon

describe('moonscript tests', function()
  it('works', function()
    assert.are.equal(true, true)
  end)
end)

其实,不用有这个翻译过程,因为busted直接可以解析.moon脚本。

因为这个脚本只有一个Case,所有显示结果如下:

 busted moonunit.moon 
●
1 success / 0 failures / 0 errors / 0 pending : 0.000782 seconds

下面我们估计,把Case的表达结果,改成NG。

describe 'moonscript tests', ->
  it 'works', ->
    assert.are.equal true, false
    return                
  return
return
busted moonunit.moon 
◼
0 successes / 1 failure / 0 errors / 0 pending : 0.000996 seconds

Failure → moonunit.moon @ 2
moonscript tests works
moonunit.moon:3: Expected objects to be equal.
Passed in:
(boolean) false
Expected:
(boolean) true

如预期一样,出现了NG报告。

在另一篇中,我们用Vanilla框架的Simple Route做例子,写单体测试CASE。