नोट के साथ टेस्ट AngularJS नियंत्रक: मैं CoffeeScript
में सब कुछ लिख रहा हूँ मैं एक नियंत्रक के रूप में निम्नानुसार है:
angular.module('myApp').controller 'MyController', ($scope, $routeParams, Batch) ->
$scope.$on '$routeChangeSuccess',() ->
Batch.get {batchUuid: $routeParams.batchUuid}, (response) ->
$scope.batch_id = response.id
नियंत्रक बैच संसाधन है, जिसमें खींचती इस प्रकार के रूप में परिभाषित:
angular.module('myApp').factory 'Batch', ($resource) ->
$resource '/batches/:batchUuid', {}
इस प्रकार मैं इस के लिए एक मार्ग है:
$routeProvider.when('/batches/:batchUuid',
{ templateUrl: 'batches-processing.html', controller: 'MyController' })
तो:
- आप मार्ग /बैचों/22
- यह MyController
- यह चलाता है $ routeChangeSuccess
- यह बैच संसाधन डायन पर प्राप्त कॉल का उपयोग करता है का दौरा मार्ग से बैच यूयूड
- यह एक जेसन प्रतिक्रिया और assi वापस आता है
describe 'Controllers', -> beforeEach module 'myApp' describe 'MyController', -> scope = {} ctrl= {} beforeEach inject ($rootScope, $controller, Batch, $httpBackend) -> scope = $rootScope.$new() ctrl = $controller('MyController', ($scope: scope)) #I imagine I need to use either my injected Batch resource or the httpBackend to fake/expect the ajax call here it "Gets data from the resource and assigns it to scope",() -> #How on earth do I test this
मैं $ httpBackend.expect ('/ एंडपॉइंट का उपयोग करके लोगों को देखा है: करने के लिए $ scope.batch_id
अब मैं इस परीक्षण करना चाहते हैं एक आईडी gns तो मैं एक इकाई परीक्षण के रूप में निम्नानुसार है। जेसन ')। प्रतिक्रिया ({आईडी: 1}) आदि लेकिन मैं ऐसा नहीं कर सकता। मेरा संसाधन यूआरएल मार्ग से बैच यूयूड पर निर्भर करता है। मैं एक परीक्षण को अनुकरण/नकली/कार्यान्वित कैसे कर सकता हूं जो मार्ग परिवर्तन को अनुकरण करेगा, $ मार्ग को ट्रिगर करेगा चेंजसेफ, मार्ग पारित करें संसाधन के लिए पैरामीटर, संसाधन प्राप्त करें और परिणाम का परीक्षण करें?
मैं इस पर अपने बालों को खींच रहा हूं और कोणीय दस्तावेज़ इसे कवर नहीं कर रहे हैं।
धन्यवाद!
पौराणिक दोस्त। बस महान। –
कॉफ़ीस्क्रिप्ट के लिए शून्य से एक? बू। प्रश्न स्वयं coffeescript –