Vì vậy, tôi mới cho toàn bộ thử nghiệm (Tôi đã là một trong những người đã nói 'Tôi nên viết đơn vị kiểm tra ...' nhưng không bao giờ kết thúc bao giờ làm điều đó: p). Tôi hiện đang viết các bài kiểm tra đơn vị cho dự án này. Tôi đang sử dụng testacular + Jasmine, với trình duyệt để biên dịch mọi thứ. Tôi đã không có vấn đề cho đến khi tôi bắt đầu cố gắng để làm rất nhiều công cụ tiêm AngularJS.AngularJS - thử nghiệm cơ bản với tiêm
Ngay bây giờ tôi chỉ đơn giản là cố gắng làm một thử nghiệm của ng-mô hình để có được đầu của tôi xung quanh tất cả của nó.
Tôi có một tập tin testacular.conf trong đó bao gồm tất cả mọi thứ cần thiết:
files = [
'../lib/jquery.js',
'../lib/angular.js',
'./lib/jasmine.js',
'./lib/angular-mocks.js',
JASMINE_ADAPTER,
'./tests.js' //compiled by browserify
];
Tôi đã điều khiển của tôi định nghĩa (MainCtrl.coffee)
MainCtrl = ($scope, $rootScope) ->
$scope.hello = 'initial'
module.exports = (angularModule) ->
angularModule.controller 'MainCtrl', ['$scope', '$rootScope', MainCtrl]
return MainCtrl
Và tôi có thử nghiệm của tôi bản thân: (_MainCtrlTest. cà phê, trong cùng thư mục với 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()
Kiểm tra không thành công ngay lập tức, với inp ut's elm.val() trở về trống, và scope.hello trả về giá trị dự định ('initial', được đặt trong MainCtrl.coffee)
Tôi đang làm gì sai ở đây?
Cảm ơn Vojta. Nó hoạt động ngay bây giờ :-) Vâng, tôi chỉ đang cố gắng làm một thử nghiệm góc cơ bản để có được đầu của tôi xung quanh làm thế nào để tiêm và điều khiển instantiation bên trong một thử nghiệm. Đó là tất cả thực sự đơn giản, đó là tuyệt vời. –