我想測試一個AngularJS 1控制器寫在TypeScript與茉莉花+噶瑪。但我不斷遇到一個錯誤,我不知道如何解決。該錯誤是相當不倫不類:TypeScript AngularJS控制器測試問題與angular.mock.inject Karma +茉莉花
PhantomJS 2.1.1(Windows 8的0.0.0)登錄控制器應該有文字」 失敗 [email protected]/bower_components/angular/angular.js:341:24個 loadModules @/bower_components/angular/angular.js:4456:12 [email protected]/bower_components/angular/angular.js:4381:22 [email protected]/bower_components/angular-mocks/angular-mocks.js:2507:60 /bower_components/angular /angular.js:4496:53 [email protected]_components/angular/angular.js:341:24 [email protected]/bower_components/angular/angular.js:4456:12 createInjector @/bower_ components/angular/angular.js:4381:22 [email protected]/bower_components/angular-mocks/angular-mocks.js:2507:60 /bower_components/angular/angular.js:4496:53 PhantomJS 2.1.1(Windows 8 0.0.0):執行的1 1(1失敗)錯誤(0.019秒/ 0.015秒)
這裏是我的代碼,發現它並沒有真正做任何事情。它似乎在angular.mocks.inject
方法上失敗了,因爲當我對此進行評論並添加一些非常基本的測試時,它就會起作用。
describe("Login Controller",() => {
var controller: App.Login.LoginController;
beforeEach(angular.mock.module("app.pages.auth.login"));
beforeEach(angular.mock.module($provide => {
$provide.value("$window", {});
}));
// I can get to here ok but this line below fails with the error above
// Note I have also tried putting $rootScope back in but to no avail
beforeEach(angular.mock.inject((/*$rootScope, $state, $http, $mdToast, $window, $log*/) => {
console.log("test");
}));
我已經檢查過我肯定包括angular-mocks.js
我在文件列表中(靠近我的依賴列表的末尾albet)。如果它使用wiredep
來計算我的依賴關係,即使有任何差異。
也許沒有用,但儘量只'注入(()=> {})''沒有angular.mock'。這就是我所做的 - 使用打字稿和所有。 –