我在過去的幾天裏看過所有的和互聯網,我無法弄清楚我錯過了什麼。 (Angular 1.4.7)Angular 1.x在測試中嘲笑依賴關係
我正在處理的應用程序很大,而且每個控制器往往有很多依賴關係;本地服務和第三方。我嘲笑模塊,並注入依賴關係。但是,我發現如果我不嘲笑那些依賴關係被註冊的模塊,我會得到「[$ injector:unpr]未知提供者:」錯誤。更糟糕的是,這些依賴關係可能還有其他依賴關係,現在我要去掉一個「angular.mock.module」的兔子洞 - 所有這些。如果我設法模擬所有模塊,它就可以工作。
我確定這是不正確的,但沒有博客文章,現有的規範文件或視頻提到類似的問題。我肯定錯過了什麼。無論我使用ngMock還是像BardJS這樣的助手,都會發生這種情況。
我明白嘲笑服務的概念,但我認爲這不適用於此。我不會潛入角度的UI引導程序,並開始嘲笑一切。下面的測試按原樣進行。如果控制器中存在另一個依賴關係,例如「DataService」,我將不得不嘲笑它的模塊以及它的所有依賴模塊。提前致謝!我知道這一定很簡單。
describe("HomeController", function() {
beforeEach(angular.mock.module("app.home"));
beforeEach(angular.mock.module("app.notify"));
beforeEach(angular.mock.module("ngDialog"));
describe("controller", function() {
var scope;
var controller;
var HomeController;
beforeEach(inject(function($rootScope, _Notify_, _ngDialog_, $controller) {
scope = $rootScope.$new();
controller = $controller;
HomeController = controller("HomeController", {
$scope: scope
});
Notify = _Notify_;
ngDialog = _ngDialog_;
}));
it('should exist', function() {
expect(HomeController).to.be.defined;
})
});