Tôi đang làm việc trên ứng dụng Rails 3.2 sẽ sử dụng AngularJS. Tôi có thể có được Angular để làm những gì tôi cần, nhưng tôi đang có một thời gian rất khó khăn để tìm ra cách để kiểm tra những gì tôi đang làm. Tôi đang sử dụng bảo vệ hoa nhài để chạy thông số kỹ thuật của Jasmine bằng cách sử dụng PhantomJS.Cách kiểm tra chỉ thị AngularJS
Dưới đây là (có liên quan) html:
<html id="ng-app" ng-app="app">
<div id="directive-element" class="directive-element">
</div>
</html>
Các javascript (trong coffeescript) trông giống như:
window.Project =
App: angular.module('app', [])
Directive: {}
Project.Directive.DirectiveElement =
->
restrict: 'C'
link: (scope, element, attrs) ->
element.html 'hello world'
Project.App.directive 'directiveElement', Project.Directive.DirectiveElement
Đoạn mã trên thực hiện chính xác những gì nó được thiết kế để làm. Các bài kiểm tra là vấn đề. Tôi không thể khiến họ làm việc cả. Đây là một điều tôi đã thử. Đăng bài này chủ yếu chỉ để bắt đầu cuộc trò chuyện ở đâu đó.
describe 'App.Directive.DirectiveElement', ->
it 'updates directive-element', ->
inject ($compile, $rootScope) ->
element = $compile('<div id="app" ng-app="app"><div id="directive'element" class="directive-element"></div></div>')
expect(element.text()).toEqual('hello world')
Là một sang một bên, tôi mới để AngularJS, vì vậy nếu có bất kỳ thực hành tốt nhất về không gian tên, mô-đun, vv Tôi không tuân theo, hướng dẫn sẽ được đánh giá.
Làm cách nào để thử nghiệm tính năng này hoạt động?
Vì người chơi có vẻ không hoạt động nữa, bạn có phiên bản làm việc không? Tài liệu hướng dẫn kiểm tra chỉ thị với Jasmine cho AngularJS là siêu xấu và gây tổn thương cho một ví dụ như một người ở plunker. – Philipp
OK, tôi đã chỉnh sửa nó để cung cấp liên kết đến các kiểm tra thực tế :-) –
bạn có chắc chắn về myElement.children(). Scope()? Tôi không làm việc cho tôi = ( -> UPD: Tôi phải làm $ scope. $ Apply() –