4

我有一个看起来像这样的模型:

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

这是正确的方法吗?

4

1 回答 1

2

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

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

于 2012-05-25T21:40:15.837 回答