Nodeunit - Backbone - Requirejs:单元测试

时间:2012-07-23 11:53:58

标签: unit-testing backbone.js requirejs nodeunit

我正在尝试使用Nodeunit来测试我的Backbone模型,之后我也想测试其他组件。我使用Nodeunit的主要原因是因为我的服务器测试已经使用它了,我想坚持使用一个测试框架。

这是个好主意吗?我做了一次可靠的尝试来设置单元测试,但是当我尝试要求下划线和主干库时,它失败了:

Error: Cannot find module 'underscore'

是否有可能将nodeunit用于此,如果不是,推荐的单元测试框架将用于测试Backbone应用程序?

1 个答案:

答案 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