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

資訊專欄INFORMATION COLUMN

Requirejs Backbone Collection 測試

netScorpion / 1336人閱讀

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

在一點點慢慢地寫一個簡單的SPA應用,在這樣的一個過程里,我們也不得不寫一些測試以方便重構。

Backbone Collection

Bacbkbone主要由三部分組成

model:創建數據,進行數據驗證,銷毀或者保存到服務器上。

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

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

于是我們簡單地定義了一個Model以及一個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的時候mock一個response,在這時我們就可以測試這里的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");

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/8691.html

相關文章

  • 基于 Backbone + node 的個人簡歷生成器(個人學習總結)

    摘要:應用的功能這個應用是一個個人簡歷生成器。比較好的教程有這一個。這樣的命名污染問題自然顯而易見。而且發出多次請求也會影響性能。明顯不利于維護。然而我希望能夠不發生變化,因為是在文件的前提下的標簽頁,不能換一個標簽就重建一個。 為什么學習backbone?這是個好問題。在這個前端框架爆炸的年代,比起backbone,對開發來說有更多更好的選擇,react,vue,angular等等。但這些...

    lansheng228 評論0 收藏0
  • RequireJS進階:配置文件的學習

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

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

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

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

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

    xumenger 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<