成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實例解說AngularJS在自動化測試中的應用

運維 自動化
在AngularJS中,測試非常簡單,可以使用其它的測試庫進行測試(如Jasmine)。

 [[271012]]

(圖片來源于網絡)

 

一、什么是AngularJS ?

 

1、AngularJS是一組用來開發web頁面的框架、模板以及數據綁定和豐富UI的組件;

2、AngularJS提供了一系列健壯的功能,以及將代碼隔離成模塊的方法; 

3、AngularJS于2009年發布***個版本,由Google進行維護,壓縮版94k。

 

二、AngularJS的核心思想

 

實例解說AngularJS在自動化測試中的應用

1、在AngularJS中通過數據視圖雙向綁定實現視圖與業務邏輯解耦,這將提高代碼的可測試性;

2、遵循MVC模式開發,鼓勵視圖、數據、邏輯組件間松耦合; 

3、將測試與應用程序編寫放在同等重要的位置,在編寫模塊的同時編寫測試。因為各組件的松耦合,使得這種測試得以實現; 

4、 應用程序頁面端與服務器端解耦。兩方只需定義好通信API,即可并行開發。

 

三、簡單的栗子

 

問題:假設我們需要編寫一個手機列表,支持對手機信息進行模糊搜索,且按指定字段排序,要怎么實現呢?

實例解說AngularJS在自動化測試中的應用

如上圖所示,幾乎沒有DOM操作,更專注于業務邏輯!

下面編寫HTML 

實例解說AngularJS在自動化測試中的應用

實例解說AngularJS在自動化測試中的應用

編寫控制器Controller

實例解說AngularJS在自動化測試中的應用

PhoneListCtrl 控制器。例子中注入了$scope(數據模型)、$http(封裝了ajax的服務)這兩個服務都是angularjs內置服務,服務是可以自定義的。

$scope.phones = data; 在這個地方后臺返回的數據應用到了數據模型中,這時前臺UI會自動響應更新。

 

四、指令

 

4.1 什么是指令?

指令是AngularJS用來擴展瀏覽器能力的技術之一。在DOM編譯期間,和HTML關聯著的指令會被檢測到,并且被執行。這使得指令可以為DOM指定行為或者改變DOM的結構。例如ng-controller、ng-src、ng-model等。

4.2 AngularJS的編譯

實例解說AngularJS在自動化測試中的應用

4.3 簡單的AngularJS指令寫法

自定義指令的一般格式:

angular.application(‘myApp’, []).directive(‘myDirective’,function(){
//一個指令定義對象
return{ }; //通過設置項來定義指令,在這里進行覆寫
});

下面我們來看一個簡單的自定義指令的例子:

實例解說AngularJS在自動化測試中的應用

  • module:這個方法將新建一個模塊。AngularJS以模塊管理代碼。

  • directive:在模塊中新建指令,指定的方法在編譯步驟會被執行,執行后返回一個自定義的鏈接函數,這個鏈接函數在完成雙向綁定后執行。

  • Restrict:它告訴AngularJS這個指令在DOM中可以何種形式被聲明。E(元素), A(屬性,默認值), C(類名)。

  • scope :可以被設置為true或一個對象。默認值是false。當scope設置為true時,會從父作用域繼承并創建一個新的作用域對象。有三種綁定策略@ = &。

  • Template:一段HTML文本,或一個可以接受兩個參數的函數,參數為tElement和tAttrs,并返回一個代表模板的字符串。

4.4 使用指令

實例解說AngularJS在自動化測試中的應用

  • ng-app="MyModule":在angularjs啟動時指定初始化的模塊(module)。當前指定的是自定義的模塊。

  • drink water="{{pureWater}}":調用自定義的drink指令,將$scope中的pureWater屬性賦值給指令中的water屬性。

  • drink可以是一個屬性,也可以是一個標簽。

 

五、模塊和服務

 

在AngularJS中,模塊負責組織、啟動、實例化應用。

實例解說AngularJS在自動化測試中的應用

模塊的兩個部分,一個是配置塊,另一個是運行塊。

  • 配置塊:在實例工廠(provider)注冊和配置階段運行。只有工廠、常量才可以注入到配置塊中(常量的配置要放在前面);

實例解說AngularJS在自動化測試中的應用

  • 運行塊:注入器(injector)被創建后執行,被用來啟動應用。實例和常量、變量等都能被注入。

實例解說AngularJS在自動化測試中的應用

AngularJS應用中的服務是一些用依賴注入捆綁在一起的、可替換的對象。這些對象可以提供一些封裝好的邏輯操作,以供調用。AngularJS內置了很多有用的服務,例如前面提到的$timeout、$http等,我們可以通過使用內置服務完成大部分業務邏輯。但很多時候我們還需要自定義服務:

實例解說AngularJS在自動化測試中的應用

服務的使用

實例解說AngularJS在自動化測試中的應用

上圖的代碼中定義了一個服務notify,它依賴另外一個服務$window。$window中封裝了window對象的方法,定義了一個控制器myController,并為這個控制器注入了notify服務,同時在控制器的scope中定義了一個方法callNotify來調用服務。$inject是依賴注入的一種方式,請參看下文依賴注入章節。

 

六、依賴注入

 

我們可以將需要的服務比作一件工具,比如一把錘子,那我們要怎么獲得錘子呢?

  • ***種方法:自己打造一把錘子。如果錘子的工藝改變了,我們就需要重新制造。相當于我們在程序中new了一個服務,服務的實現改變時,只能修改代碼,這將產生風險。 

  • 第二種方法:我們找到一間工廠,告訴工廠錘子的型號,然后工廠為我們制造。這時候就不需要關系錘子是怎么做的,我們只管使用。但是這種方式還是很麻煩,我們需要知道工廠在哪。類似于在代碼中通過工廠方法獲取我們想要的服務。這種方會對工廠產生依賴。 

  • 第三種方法:我們在門前貼張單子,聲明我們需要一把什么型號的錘子,第二天就有人默默地送來了一把錘子。這在現實生活中簡直是癡心妄想,但這種方式確實很輕松,不需要考慮任何東西,我們只關注使用錘子。這就是程序里的依賴注入。只要聲明了需要什么,在使用的時候就可以得到什么。

6.1 AngularJS中的依賴注入

***種方式:通過方法參數名聲明依賴。這種方式不推薦使用,因為js文件壓縮后方法參數名會改變。

實例解說AngularJS在自動化測試中的應用

第二種方式:聲明一個數組,依賴列表放數組的前部,注入目標放數組***一個元素。推薦使用這個方法。

實例解說AngularJS在自動化測試中的應用

第三種方式:通過$inject屬性來聲明依賴列表。

實例解說AngularJS在自動化測試中的應用

 

七、文中沒有介紹但需去了解的

 

1、$scope的生命周期,這是一個相當重要的內容。

2、AngularJS對于表單的支持。AngularJS內置了表單的服務,可以大大提高開發效率。

3、指令的詳細定義方式。很多時候,簡單的指令寫法不能滿足需求,需要更深度的定制指令。

4、如何進行測試。在AngularJS中,測試非常簡單,可以使用其它的測試庫進行測試(如Jasmine)。

【本文是51CTO專欄機構宜信技術學院的原創文章,微信公眾號“宜信技術學院( id: CE_TECH)”】

戳這里,看該作者更多好文

責任編輯:張燕妮 來源: 宜信技術學院
相關推薦

2011-04-18 12:52:37

自動化測試功能測試軟件測試

2010-07-14 11:14:48

Perl多進程

2024-05-06 08:08:31

2024-01-08 13:31:00

Rust自動化測試

2010-07-26 09:53:08

Perl多進程

2010-09-08 15:25:09

自動化測試技術網站鏈接測試

2021-06-30 19:48:21

前端自動化測試Vue 應用

2021-06-26 07:40:21

前端自動化測試Jest

2023-05-18 14:01:00

前端自動化測試

2012-11-16 09:16:26

自動化運維

2021-04-22 15:46:42

物聯網智能辦公IoT

2012-02-27 17:34:12

Facebook自動化

2022-09-12 16:02:32

測試企業工具

2022-02-17 10:37:16

自動化開發團隊預測

2011-08-16 15:36:47

iPhone應用測試

2023-10-06 22:12:40

Python開發工業系統

2023-03-27 15:37:43

自動化測試開發

2009-09-22 11:58:00

ibmdwWeb

2022-05-10 11:18:42

自動化測試軟件測試

2022-06-08 14:22:55

自動化測試測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区三区在线观看视频 | 午夜在线视频一区二区三区 | www.中文字幕 | 国产精品中文在线 | 欧美激情精品久久久久久变态 | 精品综合视频 | 日韩免费福利视频 | 免费成人高清 | 国产精品福利视频 | 国产欧美在线 | 国产视频一区在线观看 | 久久一区二区三区四区五区 | 岛国精品 | 色网站在线 | 亚洲一区二区三区福利 | 国产精品一区二区久久久久 | 国产精品视频在线播放 | 久久精品国产亚洲一区二区三区 | www.9191| 99一区二区 | 亚洲一区二区在线播放 | 精品久久亚洲 | 久久久久久久电影 | 狠狠色狠狠色综合系列 | 无吗视频 | 精精国产视频 | 色婷婷综合久久久中字幕精品久久 | 国产视频久久 | 精品欧美激情精品一区 | 99热99| 国产一级在线 | 成人啊啊啊 | 日韩精品人成在线播放 | 国产精品一区二区在线 | 无码一区二区三区视频 | 国产精品无码专区在线观看 | 国产一级视频免费播放 | 国产一区二区麻豆 | 精品1区2区 | 亚洲国产成人一区二区 | 在线观看日本网站 |