私はTDDを実行できるようにAngular 1.5アプリケーションのコントローラでユニットテストを実行しようとしていますこれ以降、他のすべてのコントローラーで使用できます。しかし、それは少し頭痛に変わっています。これらのコントローラをモジュールとしてエクスポートすると、AngularJS(1.5)のユニットテストコントローラ(頭痛...)
ng-controllersのテストに関する話題のチュートリアルとブログ記事はすべて、自分のアプリが使用するコントローラを注入し、実際のアプリケーションを注入することでそうするようです。
私がビルドしているアプリケーションは、コントローラ用の関数をエクスポートしています。これが私の頭痛の原因になっているのだろうかと思います。
// Controller file
const myController = (app) => {
const controller = app.controller('MyCtrl', ['$scope', 'SomeService', ($scope, SomeService) => {
// Stuff in here
}])
return controller
}
module.exports = {
init: myController
}
上記で呼び出されます:ここで
は一例です。このコントローラのための私のユニットテストでは、myController.init(angular.module('myApp'))
だから、私はこの中にセットアップをやろうとしています方法:
// Test file
const myController = require('../path/to/myController')
const app = angular.module('testModule', [])
myController.init(app)
describe('Controller tests: ',() => {
it('should work', inject(($controller) => {
const testMyCtrl = $controller('MyCtrl', {
$scope: {}
})
assert.equal(true, true)
}
}
しかし、私は試してみて、(カルマとモカを使用して)これをテストするとき、私が手:
Argument 'MyCtrl' is not a function, got undefined
悲しいことに、私はAngularJSの単体テストに精通しているわけではありません。私はちょうどここでドットに参加するのに苦労しています。誰もセイジアドバイスを持っていますか?