摘要:主要由三部分組成創(chuàng)建數(shù)據(jù),進行數(shù)據(jù)驗證,銷毀或者保存到服務(wù)器上。綁定模板,綁定界面元素的事件,初始的渲染,模型值改變后的重新渲染和界面元素的銷毀等。這樣我們便可以完成一個簡單地測試的書寫。
在一點點慢慢地寫一個簡單的SPA應(yīng)用,在這樣的一個過程里,我們也不得不寫一些測試以方便重構(gòu)。
Backbone CollectionBacbkbone主要由三部分組成
model:創(chuàng)建數(shù)據(jù),進行數(shù)據(jù)驗證,銷毀或者保存到服務(wù)器上。
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; });
用來獲取數(shù)據(jù),接著我們便可以創(chuàng)建一個測試,測試代碼如下
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");
這樣我們便可以完成一個簡單地測試的書寫。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/8691.html
摘要:應(yīng)用的功能這個應(yīng)用是一個個人簡歷生成器。比較好的教程有這一個。這樣的命名污染問題自然顯而易見。而且發(fā)出多次請求也會影響性能。明顯不利于維護。然而我希望能夠不發(fā)生變化,因為是在文件的前提下的標簽頁,不能換一個標簽就重建一個。 為什么學習backbone?這是個好問題。在這個前端框架爆炸的年代,比起backbone,對開發(fā)來說有更多更好的選擇,react,vue,angular等等。但這些...
摘要:概述強大靈活的運用是通過配置文件決定的。下面通過示例來進行深度的探討配置文件的使用。配置文件的位置配置文件的位置和聲明用法是相對于這個腳本文件來決定的。配置文件參數(shù)的介紹所有模塊的查找根路徑。 概述 Requires強大靈活的運用是通過配置文件決定的。通過配置文件我們可以給模塊取別名、給模塊加上版本標識、設(shè)置模塊依賴、包裝非模塊等強大功能。同時RequireJS的優(yōu)化器也大量使用了配...
摘要:是自帶的前端優(yōu)化工具,可以對項目中的和代碼使用或者進行壓縮合并。這篇文章介紹的使用和配置方法,幫助大家解決使用中碰到的問題。對腳本的優(yōu)化支持目前流行的和兩種壓縮方式,需要環(huán)境支持,而則需要環(huán)境。定義要被優(yōu)化的模塊數(shù)組。 RequireJS Optimizer 是 RequireJS 自帶的前端優(yōu)化工具,可以對 RequireJS 項目中的JavaScript和CSS 代碼使用?Ugli...
摘要:使用,會在相關(guān)的加載后執(zhí)行回調(diào)函數(shù),這個過程是異步的,所以它不會阻塞頁面。加載的模塊會以參數(shù)形式傳入該函數(shù),從而在回調(diào)函數(shù)內(nèi)部就可以使用這些模塊。 什么是RequireJS? RequireJS 是一個JavaScript模塊加載器。它非常適合在瀏覽器中使用, 但它也可以用在其他腳本環(huán)境, 就像 Rhino and Node. 使用RequireJS加載模塊化腳本將提高代碼的加載速度和...
閱讀 1045·2021-11-22 14:56
閱讀 1053·2021-11-11 16:54
閱讀 8197·2021-09-23 11:55
閱讀 3037·2021-09-22 15:57
閱讀 2817·2021-08-27 16:25
閱讀 698·2019-08-30 15:55
閱讀 1686·2019-08-30 15:43
閱讀 1627·2019-08-30 14:23