歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

AngularJS 應用單元測試起步

AngularJS 很重視測試,所以提供了很多特性使得編寫測試變得更容易。AngularJS 應用的單元測試與普通的 JavaScript 應用測試有些不同。

AngularJS 應用是以 module(模塊)為單位來組織應用,將不同的功能放進各自的模塊。測試可以從整個應用級別,或者從特定的模塊開始。正是由於測試可以從模塊開始,在測試的時候需要指定引用的模塊。

AngularJS 應用在啟動的時候,會尋找 ng-app 指定的模塊,而後創建一個 $rootScope 以及一個管理依賴的 $injector,而後依賴將通過 $injector 自動注入。在測試的時候,需要手動處理這個過程。因為在編寫測試的時候,希望的是能夠進行單元性的測試,能夠針對特定的模塊進行測試。所以在編寫 AngularJS 測試的時候,我們需要手動去引用某個模塊 ,同時手動創建 $rootScope 和手動引入依賴。

AngularJS 提供了 ngModule 這個模塊,包含一些方法用來處理這個過程。這個過程主要使用到的是兩個方法,分別是 module 以及 inject 方法。前者用於引入模塊,後者用於處理依賴。例如:

 

describe('type: name', function() {
var $scope, myService, $location;

// 在每個測試用例執行之前,引用 app 模塊
beforeEach(module('app'));

// 在每個測試用例執行之前,注入依賴
beforeEach(inject(function($rootScope, _myService_, _$location_) {
$scope = $rootScope.$new();
myService = _myService_;
$location = _$location_;
}));


it('should work', function() {
// Do something
// Expect something
});
});

示例代碼來自 Angular Tips

有一點要注意的是,在 inject 方法內,有兩個參數都有前後的下劃線,這個下劃線實際上是為了便於編寫測試(使得測試內局部變量與依賴一致的名字),AngularJS 會忽略這前後下劃線,並找到對應的依賴。

一些AngularJS相關文章鏈接

AngularJS權威教程 清晰PDF版  http://www.linuxidc.com/Linux/2015-01/111429.htm

希望你喜歡,並分享我的工作~帶你走近AngularJS系列

  1. 帶你走近AngularJS - 基本功能介紹 http://www.linuxidc.com/Linux/2014-05/102140.htm
  2. 帶你走近AngularJS - 體驗指令實例 http://www.linuxidc.com/Linux/2014-05/102141.htm
  3. 帶你走近AngularJS - 創建自定義指令 http://www.linuxidc.com/Linux/2014-05/102142.htm

如何在 AngularJS 中對控制器進行單元測試 http://www.linuxidc.com/Linux/2013-12/94166.htm

在 AngularJS 應用中通過 JSON 文件來設置狀態 http://www.linuxidc.com/Linux/2014-07/104083.htm

AngularJS 之 Factory vs Service vs Provider http://www.linuxidc.com/Linux/2014-05/101475.htm

AngularJS —— 使用 ngResource、RESTful APIs 和 Spring MVC 框架提交數據 http://www.linuxidc.com/Linux/2014-07/104402.htm

AngularJS 的詳細介紹:請點這裡
AngularJS 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved