Javascript測試框架Jasmine(三):Setup、Teardown、巢狀describe等
zz from: http://keenwon.com/1206.html
上一篇把Matcher說了說,本來該說自定義Matcher的,但是發現有些七七八八的細節沒講,那就今天先把這些基礎說了。
Setup and Teardown
Setup和Teardown可以幫助Suite執行一些重複的程式碼,Jasmine提供了beforeEach
和afterEach
函式。很顯然,beforeEach
在describe中的任何spec執行之前執行,afterEach
在任何spec執行之後執行。具體的邏輯看Demo就一目瞭然了:
- describe("Setup和Teardown示例"
,function(){- var foo;
- beforeEach(function(){
- foo =0;
- foo +=1;
- });
- afterEach(function(){
- foo =0;
- });
- it("測試1",function(){
- expect(foo).toEqual(1);
- });
- it("測試2",function(){
- expect(foo).toEqual(1);
- expect(true).toEqual(true);
- });
- });
前面說過javascript的作用域規則在Jasmine中是適用的,但是這裡可以通過this
beforeEach
,it
,afterEach
中間共享變數。每個spec的this
預設指向空的object。
- describe("this用法示例",function(){
- beforeEach(function(){
- this.foo =0;
- });
- it("使用this共享狀態",function(){
- expect(this.foo).toEqual(0);
- this.bar ="test pollution?";
- });
- it("下個Spec執行前this會被重置為空Object",function(){
- expect(this.foo
).toEqual(0);- expect(this.bar).toBe(undefined);
- });
- });
巢狀describe
可以巢狀使用describe,形成一個Suite樹,在一個spec執行之前,Jasmine會順序執行這顆樹上的所有beforeEach
。同樣的,執行完spec後,也會順序執行樹上的所有afterEach
- describe("測試巢狀describe:level1",function(){
- var foo;
- beforeEach(function(){
- alert('level1:Setup');
- });
- afterEach(function(){
- alert('level1:Teardown');
- });
- it("level1:測試",function(){
- alert('level1:測試');
- });
- describe("測試巢狀describe:level2",function()
相關推薦
Javascript測試框架Jasmine(三):Setup、Teardown、巢狀describe等
zz from: http://keenwon.com/1206.html 上一篇把Matcher說了說,本來該說自定義Matcher的,但是發現有些七七八八的細節沒講,那就今天先把這些基礎說了。 Setup and Teardown S
Javascript測試框架Jasmine(七):jqPaginator測試例項
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從本質上講是一個對比函式,它的函
Python 各種測試框架簡介(三):nose
調用 QQ upm href 命令 math 一點 發現 方法 轉載:https://blog.csdn.net/qq_15013233/article/details/52527260 摘要 這裏將從(pythontesting.net)陸續編譯四篇 Python 測試框
Javascript面向對象(三):非構造函數的繼承
pro query 遞歸調用 方法 lac .proto 但是 obj 獲得 這個系列的第一部分介紹了"封裝",第二部分介紹了使用構造函數實現"繼承"。 今天是最後一個部分,介紹不使用構造函數實現"繼承"。 一、什麽是"非構造函數"的繼承? 比如,現在有一個對象,叫做"中國
JavaScript夯實基礎系列(三):this
瀏覽器 系列 中一 對象屬性 轉化 繼續 存儲 www 能夠 ??在JavaScript中,函數的每次調用都會擁有一個執行上下文,通過this關鍵字指向該上下文。函數中的代碼在函數定義時不會執行,只有在函數被調用時才執行。函數調用的方式有四種:作為函數調用、作為方法調用、作
Android自動化測試框架開發(三)Instrumentation測試框架
本篇開始將介紹幾個重量級的測試框架,首先介紹的是Android最早推出的便於進行程式深入的,系統性的單元測試的框架–Instrumentation。 Instrumentation從android2.3甚至更早版本就存在了,很多Android自動化測試框架都是
Python3+Selenium2完整的自動化測試框架實現(一):自動化測試環境搭建
添加 在線安裝 自動化 eight str rain 中間 自動打開 發的 1 環境搭建準備 (1) 下載Python3版本的安裝包,直接官網下載即可:Python官網:https://www.python.org/ (2) 下載Python的基礎工具包
林大媽的JavaScript進階知識(三):HTML5 History API
HTML5中新增了History API,它用於管理瀏覽器路由跳轉的一個url棧。History是window物件的一部分,它也是一個物件,因此稱它是BOM(類似DOM,Browser Object Model)中的一份子。History物件包含了使用者在瀏覽器端訪問過的所有url。 一、為什麼存在Hist
介面測試框架實戰(三)| JSON 請求與響應斷言
關注公眾號,獲取測試開發實戰乾貨合輯。本文節選自霍格沃茲《測試開發實戰進階》課程教學內容。 資料驅動就是通過資料的改變驅動自動化測試的執行,最終引起測試結果的改變。簡單來說,就是引數化在自動化測試中的應用。 測試過程中使用資料驅動的優勢主要體現在以下幾點: 提高程式碼複用率,相同的測
MySQL效能管理及架構設計(三):SQL查詢優化、分庫分表 - 完結篇
一、SQL查詢優化(重要) 1.1 獲取有效能問題SQL的三種方式 通過使用者反饋獲取存在效能問題的SQL; 通過慢查日誌獲取存在效能問題的SQL; 實時獲取存在效能問題的SQL; 1.1.2 慢查日誌分析工具 相關配置引數: slow
SpringBoot學習筆記(三):SpringBoot整合Mybatis、SpringBoot事務管理、SpringBoot多資料來源
SpringBoot整合Mybatis 第一步我們需要在pom.xml裡面引入mybatis相關的jar包 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artif
Linux裝置驅動模型框架分析(三)——LDDM的實體bus_type、device和device_driver
在Linux裝置模型中,Bus(匯流排)是一類特殊的裝置,它是連線處理器和其它裝置之間的通道(channel)。為了方便裝置模型的實現,核心規定,系統中的每個裝置都要連線在一個Bus上,這個Bus可以是一個內部Bus、虛擬Bus或者Platform Bus。 device
hbase學習教程(三):HBase優化技巧、HBase基本命令、使用Java API對HBase伺服器進行操作
HBase優化技巧 1 修改 linux 系統引數 Linux系統最大可開啟檔案數一般預設的引數值是1024,如果你不進行修改併發量上來的時候會出現“Too Many Open Files”的錯誤,導致整個HBase不可執行,你可以用ulimit -n 命令
flask學習筆記(三):URL傳參、URL反轉、重定向
1、URL傳參 對一個固定頁面下傳入url引數。需要給定一個id,並且使用<id>傳參,這樣才能返回一個值。 #-*- coding:utf-8 -*- from flask import Flask app = Flask(__name__) @app.
webUI自動化測試框架(三):程式碼分層-物件庫層
前言:做UI自動化,不可避免的要和頁面上的元素打交道,有的童鞋可能會選擇把頁面元素的定位,操作都寫在測試程式碼中,當頁面元素比較少,測試程式碼比較少的情況下還好,但是一旦頁面元素多起來(實際運用中也不太可能少),測試程式碼一多,就難以閱讀和維護了,因為元素定位的程式碼並不能
.NET Core之單元測試(三):Mock框架Moq的使用
編寫一個API 新增一個介面 public interface IFoo { bool Ping(string ip); } 介面實現 public class Foo : IFoo { public bool Ping(string ip) { return new
Pytest測試框架(三):pytest fixture 用法
xUnit style 結構的 fixture用於初始化測試函式, pytest fixture是對傳統的 xUnit 架構的setup/teardown功能的改進。pytest fixture為測試準備一個良好的測試環境,測試函式使用的每個 fixture通常有一個引數(以 fixture 命名),測試函式
《Javascript高級程序設計》閱讀記錄(三):第五章 上
面向對象的語言 none 括號 數量 mas ie9 驗證 ive .so 這個系列以往文字地址: 《Javascript高級程序設計》閱讀記錄(一):第二、三章 《Javascript高級程序設計》閱讀記錄(二):第四章 這個系列,我會把閱讀《Jav