gpt4 book ai didi

coffeescript - Requirejs 与 Mocha

转载 作者:行者123 更新时间:2023-12-04 05:12:17 25 4
gpt4 key购买 nike

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()

最佳答案

我在 beforeEach 中初始化我的模块,并使用回调来触发异步:

describe...
var Module
beforeEach(function(callback){
requirejs
Module = loadedFile
callback(); // suites will now run
})

我这里有一个 Bootstrap :https://github.com/clubajax/mocha-bootstrap

关于coffeescript - Requirejs 与 Mocha ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13271646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com