मैं कोणीय के लिए बहुत नया हूं और मैं अभी भी इसमें से अधिकतर को समझने की कोशिश कर रहा हूं। मैं कोणीय 1.5.8 का उपयोग करके कुछ परीक्षण लिख रहा हूं जिसे मैंने यमन जनरेटर से उत्पन्न किया था।टाइप एरर: अपरिभाषित कोई निर्माता नहीं है
विशेष रूप से, मैं यह पता लगाने की $ httpBackend परिणामों में हेरफेर करने के लिए कैसे (मैं सुनिश्चित नहीं हूं कि अगर महत्वपूर्ण है या नहीं) कोशिश कर रहा हूँ ...
मेरी app.js में दाखिल मैं निम्नलिखित कोड है:
.run(['$rootScope', '$location', 'breadcrumbService', function ($rootScope, $location, breadcrumbService) {
$rootScope.$on('$viewContentLoaded', function() {
jQuery('html, body').animate({scrollTop: 0}, 200);
});
$rootScope.isEditMode = false;
$rootScope.$on('$stateChangeSuccess', function() {
// ------------ this next line is failing -----------
$rootScope.isEditMode = $location.path().toLowerCase().endsWith('/edit') || $location.path().toLowerCase().endsWith('/new');
});
$rootScope.parseJson = function (value) {
return angular.fromJson(value);
};
$rootScope.bc = breadcrumbService;
$rootScope.title = "";
}])
आधा रास्ते नीचे (जहां मैंने टिप्पणी जोड़ा) असफल रहा है। विशेष रूप से, endsWith
समारोह इस त्रुटि के साथ, (toLower ठीक है) विफल हो रहा है:
PhantomJS 2.1.1 (Windows 8 0.0.0) Service: breadcrumbService should return breadcrumb label in json format FAILED
TypeError: undefined is not a constructor (evaluating '$location.path().toLowerCase().endsWith('/edit')') in app/scripts/app.js (line 44)
app/scripts/app.js:44:72
[email protected]_components/angular/angular.js:18005:33
bower_components/angular-ui-router/release/angular-ui-router.js:3353:32
[email protected]_components/angular/angular.js:16383:30
bower_components/angular/angular.js:16399:39
[email protected]_components/angular/angular.js:17682:28
[email protected]_components/angular/angular.js:17495:36
[email protected]_components/angular/angular.js:17790:31
[email protected]_components/angular/angular.js:11831:53
[email protected]_components/angular-mocks/angular-mocks.js:1368:17
[email protected]_components/angular-mocks/angular-mocks.js:1808:26
test/spec/services/breadcrumbservice.js:33:27
[email protected]_components/angular/angular.js:4718:24
[email protected]_components/angular-mocks/angular-mocks.js:3085:26
यहाँ अपने परीक्षण कोड है (कुछ जंक विभिन्न उदाहरणों से संशोधित - बस इसे काम करने के लिए प्राप्त करने की कोशिश):
'use strict';
describe('Service: breadcrumbService', function() {
// load the service's module
beforeEach(module('myModule'));
var $httpBackend, $rootScope, createController, authRequestHandler;
beforeEach(inject(function($injector) {
$httpBackend = $injector.get('$httpBackend');
console.log('Is null? '+ ($httpBackend == null));
$httpBackend.whenGET(/views\/.*/).respond(200, [{}, {}, {}]);
authRequestHandler = $httpBackend.when('GET', '/api/v1/SiteStagings')
.respond({userId: 'userX'}, {'A-Token': 'xxx'});
// Get hold of a scope (i.e. the root scope)
$rootScope = $injector.get('$rootScope');
$httpBackend.flush();
}));
// instantiate service
var breadcrumbService;
beforeEach(inject(function (_breadcrumbService_) {
breadcrumbService = _breadcrumbService_;
}));
it('svc should exist', function() {
expect(!!breadcrumbService).toBe(true);
});
it('should return breadcrumb label in json format', function() {
var result = breadcrumbService.getFromCache('site', 'SiteGroupStagings', 46, 'SiteGroupDesc');
console.log(result);
expect(!!result).toBe(true);
});
});
मुझे शक नहीं है कि मैं यहां कुछ गलत कर रहा हूं, मैं समझ नहीं पा रहा हूं कि यह क्या है। इस त्रुटि का वास्तव में क्या अर्थ है और यह मेरी कॉल को endsWith
पर क्यों पसंद नहीं करता है?
धन्यवाद
मुझे फ़ैंटॉमजेएस के साथ समान समस्याएं हैं। अधिकांश समय सभी परीक्षण पास होते हैं, लेकिन दूसरी बार वे सभी एक ही त्रुटि के साथ असफल होते हैं "TypeError: अपरिभाषित एक कन्स्ट्रक्टर नहीं है (मूल्यांकन ..."। केवल विंडोज पर फैंटॉमजेएस के साथ होता है। क्रोम का उपयोग त्रुटियों को कभी नहीं होता है। –