国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Requirejs Backbone Collection 測試

netScorpion / 1332人閱讀

摘要:主要由三部分組成創(chuàng)建數(shù)據(jù),進(jìn)行數(shù)據(jù)驗(yàn)證,銷毀或者保存到服務(wù)器上。綁定模板,綁定界面元素的事件,初始的渲染,模型值改變后的重新渲染和界面元素的銷毀等。這樣我們便可以完成一個(gè)簡單地測試的書寫。

在一點(diǎn)點(diǎn)慢慢地寫一個(gè)簡單的SPA應(yīng)用,在這樣的一個(gè)過程里,我們也不得不寫一些測試以方便重構(gòu)。

Backbone Collection

Bacbkbone主要由三部分組成

model:創(chuàng)建數(shù)據(jù),進(jìn)行數(shù)據(jù)驗(yàn)證,銷毀或者保存到服務(wù)器上。

collection:可以增加元素,刪除元素,獲取長度,排序,比較等一系列工具方法,說白了就是一個(gè)保存 models的集合類。

view:綁定html模板,綁定界面元素的事件,初始的渲染,模型值改變后的重新渲染和界面元素的銷毀等。

于是我們簡單地定義了一個(gè)Model以及一個(gè)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;
});

用來獲取數(shù)據(jù),接著我們便可以創(chuàng)建一個(gè)測試,測試代碼如下

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了一個(gè)簡單的server

this.server = sinon.fakeServer.create();

這樣我們就可以在fetch的時(shí)候mock一個(gè)response,在這時(shí)我們就可以測試這里的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");

這樣我們便可以完成一個(gè)簡單地測試的書寫。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/8691.html

相關(guān)文章

  • 基于 Backbone + node 的個(gè)人簡歷生成器(個(gè)人學(xué)習(xí)總結(jié))

    摘要:應(yīng)用的功能這個(gè)應(yīng)用是一個(gè)個(gè)人簡歷生成器。比較好的教程有這一個(gè)。這樣的命名污染問題自然顯而易見。而且發(fā)出多次請求也會影響性能。明顯不利于維護(hù)。然而我希望能夠不發(fā)生變化,因?yàn)槭窃谖募那疤嵯碌臉?biāo)簽頁,不能換一個(gè)標(biāo)簽就重建一個(gè)。 為什么學(xué)習(xí)backbone?這是個(gè)好問題。在這個(gè)前端框架爆炸的年代,比起backbone,對開發(fā)來說有更多更好的選擇,react,vue,angular等等。但這些...

    lansheng228 評論0 收藏0
  • RequireJS進(jìn)階:配置文件的學(xué)習(xí)

    摘要:概述強(qiáng)大靈活的運(yùn)用是通過配置文件決定的。下面通過示例來進(jìn)行深度的探討配置文件的使用。配置文件的位置配置文件的位置和聲明用法是相對于這個(gè)腳本文件來決定的。配置文件參數(shù)的介紹所有模塊的查找根路徑。 概述 Requires強(qiáng)大靈活的運(yùn)用是通過配置文件決定的。通過配置文件我們可以給模塊取別名、給模塊加上版本標(biāo)識、設(shè)置模塊依賴、包裝非模塊等強(qiáng)大功能。同時(shí)RequireJS的優(yōu)化器也大量使用了配...

    lemon 評論0 收藏0
  • 前端優(yōu)化:RequireJS Optimizer 的使用和配置方法

    摘要:是自帶的前端優(yōu)化工具,可以對項(xiàng)目中的和代碼使用或者進(jìn)行壓縮合并。這篇文章介紹的使用和配置方法,幫助大家解決使用中碰到的問題。對腳本的優(yōu)化支持目前流行的和兩種壓縮方式,需要環(huán)境支持,而則需要環(huán)境。定義要被優(yōu)化的模塊數(shù)組。 RequireJS Optimizer 是 RequireJS 自帶的前端優(yōu)化工具,可以對 RequireJS 項(xiàng)目中的JavaScript和CSS 代碼使用?Ugli...

    Alan 評論0 收藏0
  • JS 模塊化編程 require.js 的用法

    摘要:使用,會在相關(guān)的加載后執(zhí)行回調(diào)函數(shù),這個(gè)過程是異步的,所以它不會阻塞頁面。加載的模塊會以參數(shù)形式傳入該函數(shù),從而在回調(diào)函數(shù)內(nèi)部就可以使用這些模塊。 什么是RequireJS? RequireJS 是一個(gè)JavaScript模塊加載器。它非常適合在瀏覽器中使用, 但它也可以用在其他腳本環(huán)境, 就像 Rhino and Node. 使用RequireJS加載模塊化腳本將提高代碼的加載速度和...

    xumenger 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<