所以我對整個測試的新東西(我一直說'我應該寫單元測試...'的人之一,但從來沒有結束過這樣做: - p)。 我現在正在爲這個項目編寫單元測試。我正在使用testacular + Jasmine,通過browserify來編譯東西。直到我開始嘗試做很多AngularJS注入東西之前,我一直沒有問題。AngularJS - 基本測試與注射
現在,我只是試圖做一個ng模型的測試,讓我的頭部圍繞它。
我有一個testacular.conf文件,其中包括所需的一切:
files = [
'../lib/jquery.js',
'../lib/angular.js',
'./lib/jasmine.js',
'./lib/angular-mocks.js',
JASMINE_ADAPTER,
'./tests.js' //compiled by browserify
];
我有我的控制器定義(MainCtrl.coffee)
MainCtrl = ($scope, $rootScope) ->
$scope.hello = 'initial'
module.exports = (angularModule) ->
angularModule.controller 'MainCtrl', ['$scope', '$rootScope', MainCtrl]
return MainCtrl
我有我的測試本身:(_MainCtrlTest。咖啡,在同一目錄MainCtrl.coffee)
testModule = angular.module 'MainCtrlTest', []
MainCtrl = require('./MainCtrl')(testModule)
describe 'MainCtrlTest', ->
scope = null
elm = null
ctrl = null
beforeEach inject ($rootScope, $compile, $controller) ->
scope = $rootScope.$new()
ctrl = $controller MainCtrl, $scope: scope
elm = $compile('<input ng-model="hello"/>')(scope)
describe 'value $scope.hello', ->
it 'should initially equal input value', ->
expect(elm.val()).toBe scope.hello
it 'should change when input value changes', ->
scope.$apply -> elm.val('changedValue')
expect(scope.hello).toBe elm.val()
測試立即失敗,與INP ut的elm.val()返回空白,並且scope.hello返回預期值('initial',在MainCtrl.coffee中設置)
我在這裏做什麼錯了?
謝謝Vojta。它現在可以工作:-)我只是試圖做一個基本的角度測試,讓我的腦海中圍繞如何在測試中進行注入和控制器實例化。這一切都很簡單,這很好。 –