Javascript 我应该如何使用requireJs编写spec文件?
我有一个模型,看起来像这样:Javascript 我应该如何使用requireJs编写spec文件?,javascript,backbone.js,requirejs,jasmine,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",
//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"
});
});
});
});
这是正确的方法吗?是的,这是正确的。使用RequireJS进行测试的好处在于,您必须在define块中声明所有测试依赖项。根据定义,单元测试应该只测试一件事情。所以,如果您在一个测试中有多个依赖项,那么您根本没有进行真正的“单元测试”,这就是代码的味道
理想情况下,唯一的依赖项应该是正在测试的文件。如果该文件本身有任何依赖项,例如服务器端服务或复杂的异步API,则可以使用存根和模拟来模拟它们。查看SinonJS,了解一个很棒的存根/模拟库。这正是我使用Jasmine和Spy.js进行设置的方式。