के रूप में हम http://docs.angularjs.org/tutorial/step_07 में यहाँ देख,AngularJS मार्ग इकाई परीक्षण
angular.module('phonecat', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/phones', {templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl}).
when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}).
otherwise({redirectTo: '/phones'});
}]);
मार्ग परीक्षण E2E परीक्षण के साथ किया जा करने के लिए सुझाव दिया है,
it('should redirect index.html to index.html#/phones', function() {
browser().navigateTo('../../app/index.html');
expect(browser().location().url()).toBe('/phones');
});
हालांकि, मुझे लगता है कि '$ routeProvider' config है एक फ़ंक्शन, फ़ंक्शन ($ रूटप्रोवाइडर) के साथ किया गया है, और हमें ब्राउज़र की भागीदारी के बिना इकाई परीक्षण करने में सक्षम होना चाहिए क्योंकि मुझे लगता है कि रूटिंग फ़ंक्शन को ब्राउज़र DOM की आवश्यकता नहीं है।
उदाहरण के लिए,
जब यूआरएल है/foo, templateUrl /partials/foo.html होना चाहिए और नियंत्रक जब यूआरएल/बार है, templateUrl /partials/bar.html होना चाहिए और नियंत्रक है BarCtrl
है
यह एक साधारण कार्य आईएमओ है, और इसे एक परीक्षण परीक्षण, एक यूनिट परीक्षण में भी परीक्षण किया जाना चाहिए।
मैंने इस $ रूटप्रोवाइडर यूनिट परीक्षण के लिए गुगल किया और खोज की, लेकिन अभी तक कोई भाग्य नहीं है।
मुझे लगता है कि मैं यहां से कुछ कोड उधार ले सकता हूं लेकिन इसे अभी तक नहीं बना सकता, https://github.com/angular/angular.js/blob/master/test/ng/routeSpec.js।
2 में से कोई भी पर्याप्त नहीं है? – Maarten
किसी को यह आश्चर्य करना होगा कि क्या यह एक यूनिट परीक्षण उत्पन्न करेगा जो वास्तविक मूल्य प्रदान करता है, हालांकि; अधिकांश मार्ग कॉन्फ़िगरेशन बस इतना है, कॉन्फ़िगरेशन, और यूनिट टेस्ट 'क्या/कुछ/मार्ग बराबर/कुछ/मार्ग' तक उबाल जाएगा? – fwielstra
@fwielstra, हां, इस प्रकार का परीक्षण [डबल एंट्री] (http://en.wikipedia.org/wiki/Double-entry_bookkeeping_system) जैसा लगता है। फिर फिर, मुझे लगता है कि अधिकांश परीक्षण इस तरह महसूस करते हैं। दूसरी तरफ, मुझे डबल एंट्री उपयोगी लगता है। – zhon