我应该如何使用requireJs编写spec文件?

时间:2012-05-25 15:23:52

标签: javascript backbone.js requirejs jasmine

我的模型看起来像这样:

//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"
            });
        });
    });
});

这是正确的方法吗?

1 个答案:

答案 0 :(得分:2)

是的,这是正确的。使用RequireJS进行测试的好处是,您必须在定义块中声明所有测试依赖项。根据定义,单元测试应该只测试一件事。因此,如果你在一次测试中有多个依赖项,那就是代码味道,你根本就没有真正进行“单元测试”。

理想情况下,唯一的依赖项应该是正在测试的文件。如果该文件本身具有任何依赖关系,例如服务器端服务或复杂的异步APIS,则可以使用存根和模拟来模拟它们。查看SinonJS是否有一个很好的存根/模拟库。