RequireJS 和 mocha 在协同工作时遇到了一些问题。我认为这是因为 mocha 不等待 requireJS 的异步操作完成并决定测试完成。
作为一个热修复,我将 requireJS 的加载调用包装在 mocha 的it()
调用中。不知何故,mocha 知道当我添加回调时,它应该等待异步方法完成。
但我想知道是否没有比我现在使用的更方便的设置。当前的设置不是很好,也不是很灵活。
这是我的 test.coffee 脚本:
describe 'Ink', ->
describe '#constructor', ->
it 'should return an Ink instance', ( done ) ->
requirejs [ "build/ink/core/Ink" ], ->
# commence testing
a = new Ink( '<div></div>' )
assert.equal( new Ink instanceof Ink, false )
assert.equal( new Ink instanceof window.jQuery, true )
done()
describe 'Mixin', ->
f : ( Mixin ) ->
# test mixin
class A
constructor : ( @a ) ->
class m extends Mixin
constructor : () -> @mixin_prop = 42
increment : ( arg ) -> return arg + 1
class B extends A
Mixin.mixin( m, @ )
b = new B()
return b
it 'should chain the constructor', ( done ) ->
requirejs [ "build/ink/core/Mixin" ], ( Mixin ) ->
b = f( Mixin )
assert.equal( b.mixin_prop, 42 )
done()
it 'should add the methods from the mixin to the new class', ( done ) ->
requirejs [ "build/ink/core/Mixin" ], ( Mixin ) ->
b = f( Mixin )
assert.equal( b.increment( 42 ), 42 )
done()