我正在尝试使用Nodeunit来测试我的Backbone模型,之后我也想测试其他组件。我使用Nodeunit的主要原因是因为我的服务器测试已经使用它了,我想坚持使用一个测试框架。
这是个好主意吗?我做了一次可靠的尝试来设置单元测试,但是当我尝试要求下划线和主干库时,它失败了:
Error: Cannot find module 'underscore'
是否有可能将nodeunit用于此,如果不是,推荐的单元测试框架将用于测试Backbone应用程序?
答案 0 :(得分:0)
您可能没有在NodeUnit测试运行器html中包含RequireJS配置。或者,如果您是,也许NodeUnit不以相同的方式提供动态内容。我之前没有使用它,但我遇到了与Jasmine类似的问题。
使用jasmine方法,我必须做这样的事情:
# coffeescript #
TEST_ENV = (typeof window['jasmine'] == 'object')
prefix = if TEST_ENV then '/public' else ''
baseUrl = prefix + '/javascripts'
在jasmine-gem世界中(在rails中),/ public文件夹是在实际/公共路径之外提供的。 (正常的rails服务假定/ public文件夹实际上是根路由。)因此,这段代码检查测试上下文并将/ public前缀添加到baseUrl。然后,在我的requireJS配置中,我分配了这个baseUrl。
这可能与您使用NodeUnit时遇到的问题相同。
有关我如何设置此功能的更多信息,以及特殊的RequireJS + Jasmine集成,请参阅my blog post。