我的模型看起来像这样:
//myModel.js
define([], function () {
var MyModel = Backbone.Model.extend({
// my code
});
return MyModel
});
然后,如果我想为此模型编写规范,我应该如何使用requireJs加载模型?
我确实尝试了以下内容:
//myModel.spec.js
define([
"js/models/myModel",
], function (MyModel) {
describe("My model", function()
{
beforeEach(function ()
{
this.myModel = new MyModel({
name: "my title"
});
});
});
});
这是正确的方法吗?
答案 0 :(得分:2)
是的,这是正确的。使用RequireJS进行测试的好处是,您必须在定义块中声明所有测试依赖项。根据定义,单元测试应该只测试一件事。因此,如果你在一次测试中有多个依赖项,那就是代码味道,你根本就没有真正进行“单元测试”。
理想情况下,唯一的依赖项应该是正在测试的文件。如果该文件本身具有任何依赖关系,例如服务器端服务或复杂的异步APIS,则可以使用存根和模拟来模拟它们。查看SinonJS是否有一个很好的存根/模拟库。