我正在測試Angular將我的頭髮拉出來。我試圖實例化一個控制器和茉莉花抱怨$控制器不是一個函數。以下是我的測試。
describe "MyCtrl test",() ->
beforeEach module('ngRoute')
beforeEach module('myControllers')
$controller = undefined
$scope = undefined
$routeParams = undefined
mySvc = undefined
beforeEach inject (_$controller_, $rootScope, _$routeParams_,_mySvc_) ->
$controller = _$controller_
$scope = $rootScope.$new()
mySvc = _mySvc_
describe "MyCtrl",() ->
beforeEach() ->
MyCtrl = $controller('MyCtrl', {$scope:$scope,$routeParams:$routeParams,mySvc:mySvc})
it "should be defined",() ->
expect(MyCtrl).toBeDefined()
我已經在頂級作用域中定義了$控制器,我已經注入了控制器服務並將其分配給全局變量。它怎麼不是一個功能?
注入和括號之間存在空格,將其除去,同時從_ $ controller_中除去下劃線,試試 – Jax
注入和括號之間的空格是拼寫錯誤。它不能解決問題。 如果我從$控制器中刪除下劃線,則會出現$ rootScope未定義的錯誤。 –
這很奇怪!你可以嘗試添加一個'dump'語句來顯示'describe'MyCtrl'...'後面緊跟着'$ controller'。還要檢查你是否真的獲得了\ _ $ controller_injection(你應該)。我假設你karma.conf.js設置好angular.mocks? – ajkavanagh