2016-02-11 120 views
0

我有一項服務取決於$ controller服務。在這個服務裏面,$ controller服務需要一個控制器名和本地實例來實例化這個控制器。 當我單元測試此服務時,我想通過一個虛擬控制器名稱,以便我可以正確測試此服務。 從閱讀angular.js源代碼,我知道$控制器服務查找註冊控制器通過控制器的名稱。控制器通過$ controllerProvider的註冊方法進行註冊。如何在單元測試中訪問此方法。我在這裏使用Jasmine進行單元測試。 任何意見,讚賞。

+0

朋友請補充說明您已迫在眉睫的問題很難回答你的tried.just角腳本和單元測試腳本。 –

回答

0

如果你想測試角的$控制服務,並假設你正在使用ngMocks,就可以正常使用$控制器。在角的文檔,有一個example on how to use it

不管怎麼說,這是一個從文檔樣本:

describe('myDirectiveController', function() { 
it('test case', inject(function($controller) { 
    // Your code goes here 
}); 
}); 
0
beforeEach(function() { 
    module('myApp', function ($controllerProvider) { 
     $controllerProvider.register(dummyController, function() { }); 
    }); 
}); 

我結束了這一點。當我的服務調用$控制器(dummyController,controllerlocals),它能夠找到這個dummyController在其本地變量控制器註冊。 希望這將有助於人也有同樣的情況