1. 程式人生 > >Javascript測試框架Jasmine(七):jqPaginator測試例項

Javascript測試框架Jasmine(七):jqPaginator測試例項

zz from:http://keenwon.com/1225.html

jqPaginator是我自己寫的一個分頁元件,已經用在了公司的兩個專案上。這次學習Jasmine,首先想到的就是怎麼測試下jqPaginator。

看過jqPaginator專案的都知道,它是基於grunt自動化構建的,使用Jasmine自動化測試的話,就要用到grunt-contrib-jasmine了。先大概講一下grunt-contrib-jasmine:

grunt-contrib-jasmine

grunt-contrib-jasmine基於PhantomJS執行Jasmine測試。執行的時候會根據“模板檔案”生成一個html檔案,然後在

PhantomJS中執行,獲取到測試結果。grunt-contrib-jasmine自帶一個預設的模板檔案DefaultRunner.tmpl 

一般不需要自定義模板,如果你的測試真的很變態的話,可以參考官方的wiki。先看看官方提供的Demo:

grunt.initConfig({
    jasmine: {
        src: 'src/**/*.js',
        options: {
            specs: 'spec/**/*.js'
        }
    }
});

下面講一下jasmine任務的一些配置:

src

type:String|Array

被測試檔案地址,如果使用RequireJS的話,直接在測試檔案新增依賴就好了,不需要在此設定。

options.specs

type:String|Array

Jasmine specs檔案,也就測試檔案。

options.vendor

type:String|Array

第三方的庫,例如jQuery等,使用預設的模板的情況下,在Jasmine檔案,specs,helpers之前引用進來。

options.helpers

type:String|Array

除了Jasmine檔案和specs檔案之外的helper檔案,在vendor 之後引入。

options.styles

type:String|Array

樣式表,在jasmine.css之後引入

options.version

type:String

default:’2.0.0′

使用的Jasmine的版本,目前的版本是2.0.0。

options.outfile

type:String

default:_SpecRunner.html

前面說了,Jasmine會根據模板生成一個html檔案,在phantomjs內執行已進行測試。options.outfile 就是設定該html檔名稱的。執行完之後會被刪除。可以使用:build 標記來手動生成,拿上面的例子來說:grunt jasmine:build 。

options.keepRunner

type:Boolean

default:false

阻止測試執行完成之後刪除html檔案。

options.junit.path

type:String

default:undefined

JUnit xml的輸出路徑。

options.junit.consolidate

type:Boolean

default:false

是否每一個頂級的Suite都有一個JUnit xml檔案。

options.junit.template

type:String

default:undefined

指定自定義的JUnit模板檔案,代替預設的junitTemplate 。

options.host

type:String

default:''

PhantomJS執行測試的host。eg:host : 'http://127.0.0.1:8000/' 。如果不指定host,測試會在本地檔案系統中執行。

options.template

type:String|Object

default:undefined

配置一開始提到的自定義模板的路徑。

options.templateOptions

type:Object

default:{}

傳入模板的自定義配置。

options.display

type:String

default:full

full:展示所有的specs樹。short:只顯示成功的或失敗的。none:什麼都不顯示。

options.summary

type:Boolean

default:false

顯示失敗的測試和他們的錯誤資訊。

過濾 specs

過濾檔名:grunt jasmine --filter=foo

過濾目錄:grunt jasmine --filter=/foo

萬用字元:grunt jasmine --filter=/*-bar

逗號分隔多個:grunt jasmine --filter=foo,bar

jqPaginator測試

剛才說了那麼多這次來點真的,我們測試下jqPaginator,先看目錄結構:

再看看jqPaginatorSpec.js的內容:

describe('jqPaginator測試', function () {
    it('測試', function () {
        expect(true).toEqual(true);
    });
});

哈哈,先簡單演示下,然後看看grunt的配置:

jasmine: {
    src: 'src/js/jqPaginator.js',
    options: {
        specs: 'test/specs/**/*Spec.js'
    }
}

最後是期待已久的執行結果:

可以看到,提示jqPaginator依賴的jQuery沒有找到,然後簡單的測試通過了。這次就講這麼多,要想想怎麼測試jqPaginator了,歡迎高手指點。


相關推薦

Javascript測試框架JasminejqPaginator測試例項

zz from:http://keenwon.com/1225.html jqPaginator是我自己寫的一個分頁元件,已經用在了公司的兩個專案上。這次學習Jasmine,首先想到的就是怎麼測試下jqPaginator。 看過jqPaginator專案的都知道,它

Javascript測試框架Jasmine非同步程式碼測試

zz from:http://keenwon.com/1223.html 模擬Timeout Jasmine Clock 可以用來測試setTimeout 和setInterval 的回撥操作。它使回撥函式同步執行,當Clock的時間超過timer的時間,回撥函式

Javascript測試框架Jasmine自定義Matcher

zz from:http://keenwon.com/1212.html 一個專案常常需要封裝自定義的Matcher來在多個spec中使用,這次講下怎麼寫相容Jasmine的自定義Matcher。 自定義的Matcher從本質上講是一個對比函式,它的函

Javascript測試框架JasmineSetup、Teardown、巢狀describe等

zz from: http://keenwon.com/1206.html 上一篇把Matcher說了說,本來該說自定義Matcher的,但是發現有些七七八八的細節沒講,那就今天先把這些基礎說了。 Setup and Teardown S

Python3+Selenium2完整的自動化測試框架實現自動化測試環境搭建

添加 在線安裝 自動化 eight str rain 中間 自動打開 發的 1 環境搭建準備 (1) 下載Python3版本的安裝包,直接官網下載即可:Python官網:https://www.python.org/ (2) 下載Python的基礎工具包

Python 各種測試框架簡介nose

調用 QQ upm href 命令 math 一點 發現 方法 轉載:https://blog.csdn.net/qq_15013233/article/details/52527260 摘要 這裏將從(pythontesting.net)陸續編譯四篇 Python 測試框

軟件測試基本方法之驗收測試

用戶界面 基本 設計 意見 改錯 用戶需求 target 行業 alt 驗收測試是在功能測試和系統測試之後進行的,所以驗收測試的前提條件是系統或軟件產品已通過了內部測試。然後和用戶一起驗收軟件,在真實環境下執行軟件,看是否存在與用戶需求不一致的問題或違背產品規

軟體測試的藝術軟體測試的重要原則

軟體測試是為了發現錯誤而執行程式的過程,這就說明目的是為了發現錯誤,動作是執行程式。 在進行軟體測試的過程中,要遵循很多的原則,以下是幾個重要的測試原則: 1)      測試用例中一個必需部分是對預期輸出或結果進行定義。          對於軟體測試,必須是有明確的定義輸入資料和條件,同時對輸出結果有準確

軟體測試基本方法之驗收測試

驗收測試是在功能測試和系統測試之後進行的,所以驗收測試的前提條件是系統或軟體產品已通過了內部測試。然後和使用者一起驗收軟體,在真實環境下執行軟體,看是否存在與使用者需求不一致的問題或違背產品規格書的要

JavaScript學習日誌表單腳本

prev 調用 don 表單 rip 如果 html image 集合 一,基礎知識 1,取得<form>元素引用的方式,常用的是通過id,其次可以通過document.forms可以取得頁面中所有的表單,在這個集合中,可以通過數值索引或name值來取得特定的表

JavaScript -- 時光流逝js中的全域性函式

JavaScript -- 知識點回顧篇(七):js中的全域性函式 全域性函式可用於所有內建的 JavaScript 物件。 (1) encodeURI():把字串編碼為 URI。 <script type="text/javascript"> docume

【移動開發】關於一對一視訊聊天直播技術直播雲 SDK 效能測試

本篇是《一對一視訊直播技術詳解》系列的最後一篇直播雲 SDK 效能測試模型,SDK 的效能對最終 App 的影響非常大。SDK 版本迭代快速,每次釋出前都要進行系統的測試,測試要有比較一致的行為,要有效能模型作為理論基礎,對 SDK 的效能做量化評估。本文就是來探討影響 SDK 效能的指標並建立相應的效能模型

CodeMix使用的語言和框架CSS3

使用CodeMix在Eclipse中啟動CSS3 帶有CodeMix的Eclipse中的CSS3 CodeMix是一個外掛,它將VS Code智慧引入Eclipse,並允許您直接從Eclipse訪問Code OSS擴充套件。 使用CodeMix,您可以獲得在Eclipse中使用CSS3時獲得卓越程

《實時碰撞檢測演算法技術》讀書筆記分離軸測試

分離軸測試基於凸體:給定兩凸體集A和B,若兩集合不存在交集,則必定存在一個軸使得兩凸體投影無重疊。若找不到該軸,則兩凸體集相交。對於對稱幾何體如線段、AABB、OBB、球體等,其包含中心C且為投影軸上投影區間的中心位置,只需計算其投影區間的1/2寬度或半徑,求和並於二中心投影

go的web框架gin的使用多路由

http://localhost:3333/v1/loginhttp://localhost:3333/v1/submithttp://localhost:3333/v1/readhttp://localhost:3333/v2/loginhttp://localhost:3333/v2/submithttp

自學SSH框架之---strutsActionForward詳細介紹

    之前說了很多關於actionForm的內容,今天就來講解下struts種另一個比較重要的內容actionForward,相信通過前面的學習,大家對actionForward已近不陌生了,這篇文章就是來系統講解一下actionForward的。     actionFo

小白學 Python 爬蟲27自動化測試框架 Selenium 從入門到放棄

人生苦短,我用 Python 前文傳送門: 小白學 Python 爬蟲(1):開篇 小白學 Python 爬蟲(2):前置準備(一)基本類庫的安裝 小白學 Python 爬蟲(3):前置準備(二)Linux基礎入門 小白學 Python 爬蟲(4):前置準備(三)Docker基礎入門 小白學 Pyth

小白學 Python 爬蟲28自動化測試框架 Selenium 從入門到放棄

人生苦短,我用 Python 前文傳送門: 小白學 Python 爬蟲(1):開篇 小白學 Python 爬蟲(2):前置準備(一)基本類庫的安裝 小白學 Python 爬蟲(3):前置準備(二)Linux基礎入門 小白學 Python 爬蟲(4):前置準備(三)Docker基礎入門 小白學 Pyth

centos7搭建ELK Cluster集群日誌分析平臺簡單測試

-1 簡單測試 logs ima .tar.gz 分析 -c cluster images 續之前安裝好的ELK集群   各主機:es-1 ~ es-3 :192.168.1.21/22/23       logstash:  192.168.1.24       ki

JAVA學習方法重載與方法重寫、thiskeyword和superkeyword

格式 hello new 初始 per 而且 方法重寫 學習 方式 方法重載與方法重寫、thiskeyword和superkeyword 1、方法重載 重載可以使具有同樣名稱但不同數目和類型參數的類傳遞給方法。 註: 一是重載方法的參數列表必須與被重載的方法不同