Requirejs Backbone Collectionテスト
2148 ワード
簡単なSPAアプリを少しずつゆっくり書いていく過程で、再構築を容易にするためにテストを書かなければなりません.
Bacbkboneは主に3つの部分から構成されています model:データを作成し、データ検証を行い、サーバに破棄または保存します. collection:要素を追加したり、要素を削除したり、長さを取得したり、並べ替えたり、比較したりする一連のツールメソッドは、はっきり言ってmodelsを保存する集合クラスです. view:htmlテンプレートのバインド、インタフェース要素のバインドイベント、初期のレンダリング、モデル値の変更後の再レンダリング、インタフェース要素の破棄など.
モデルとCollectionを簡単に定義しました
データを取得するには、次のようなテストを作成します.
ここでは
これにより、fetchのときにresponseをmockすることができます.このとき、ここのURLが私たちが望んでいるURLかどうかをテストすることができます.
これにより、簡単にテストした書くことができます.
Backbone Collection
Bacbkboneは主に3つの部分から構成されています
モデルとCollectionを簡単に定義しました
define(['backbone'], function(Backbone) {
var RiceModel = Backbone.Model.extend({});
var Rices = Backbone.Collection.extend({
model: RiceModel,
url: 'http://localhost:8080/all/rice',
parse: function (data) {
return data;
}
});
return Rices;
});
データを取得するには、次のようなテストを作成します.
define([
'sinon',
'js/Model/Rice_Model'
], function( sinon, Rices) {
'use strict';
beforeEach(function() {
this.server = sinon.fakeServer.create();
this.rices = new Rices();
});
afterEach(function() {
this.server.restore();
});
describe("Collection Test", function() {
it("should request the url and fetch", function () {
this.rices.fetch();
expect(this.server.requests.length)
.toEqual(1);
expect(this.server.requests[0].method)
.toEqual("GET");
expect(this.server.requests[0].url)
.toEqual("http://localhost:8080/all/rice");
});
});
});
ここでは
sinon
fakeを使って簡単なserverを作りましたthis.server = sinon.fakeServer.create();
これにより、fetchのときにresponseをmockすることができます.このとき、ここのURLが私たちが望んでいるURLかどうかをテストすることができます.
this.rices.fetch();
expect(this.server.requests.length)
.toEqual(1);
expect(this.server.requests[0].method)
.toEqual("GET");
expect(this.server.requests[0].url)
.toEqual("http://localhost:8080/all/rice");
これにより、簡単にテストした書くことができます.