我一直在尝试通过一个 express node.js 项目将单元测试与我的 Backbone 模型集成,并且很难准确掌握如何完成这项任务。(旁注:我来自很多 Java 背景,我意识到存在差异,但到目前为止我喜欢节点开发环境的简单和优雅。)
我的问题源于以下问题,骨干模型需要暴露给浏览器才能在其中运行,而通过 mocha 进行的测试是节点运行时环境中的“服务器端”。
这是我正在谈论的一个例子:
模型文件:/public/js/backbone/models.js
var SomeModel = Backbone.Model.extend({...});
服务器端测试:/test/backbone/models-test.js
???
我写的 ???因为通过服务器端进行正常的单元测试,您只需执行以下操作:
var SomeModule = require('./someModule');
走你快乐的路。显然,由于浏览器不在 Node 中运行,因此模块并不容易获得。
我已经阅读了一些帖子,说明您需要将浏览器端 javascript 包装在 require.js 中,这会将这些 javascript 文件自动放入节点命名空间中,从而允许您执行 require 并继续进行测试。但是,我还没有找到一种连贯的方式来完成这样的任务,我已经尝试四处寻找示例,但似乎找不到适用的东西。诚然,这很可能是我对这个框架的普遍缺乏了解,因为我仍在思考如何在 javascript 中定义事物的范围、注入依赖项等的整个想法。
任何帮助将不胜感激,如果这个问题已经被问了一百万次,我很抱歉,我确定它已经问过了,而且我以不正确的方式问它。
提前致谢。