में हल मूल्य को इंजेक्ट करता है मेरे कोणीय ऐप में, यूआई राउटर नियंत्रक में एक वादा हल करता है। इस नियंत्रक का परीक्षण करने की कोशिश करते समय, कर्म एक अज्ञात प्रदाता के बारे में शिकायत कर रहा है। मैं इस हल ऑब्जेक्ट का प्रतिनिधित्व करने के लिए परीक्षण में नकली वस्तु को इंजेक्ट कैसे करूं?कोणीय जैस्मीन यूआई राउटर परीक्षण
मेरे ऐप्लिकेशन के कोड लग रहा है कि:
angular.module('myapp')
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('tab.name', {
...
resolve: {
allTemplates: function(Templates) {
return Templates.all().then(function(templates) {
return templates;
});
}
}
})
})
.controller('QueriesCtrl', function(allTemplates, UserQuery) {
var vm = this;
vm.queries = allTemplates;
vm.goToUrl = function(index, data) {
var processedUrl = UserQuery.process(data, vm.queryTyped[index]);
UserQuery.goToUrl(processedUrl);
};
});
जब परीक्षण मैं त्रुटि
Unknown provider: allTemplatesProvider <- allTemplates <- QueriesCtrl
मैं एक जासूस बनाकर और उसे इंजेक्शन लगाने की कोशिश की है मिल चलाने का प्रयास है, लेकिन यह काम नहीं करता । यहाँ इस समय अपने परीक्षण है:
describe('Unit: queriesCtrl', function() {
var controller,
scope,
UserQuery;
beforeEach(function() {
module('myapp');
inject(function($injector) {
UserQuery = $injector.get('UserQuery');
allTemplates = jasmine.createSpyObj('allTemplates', [{a:1}, {a:2}, {b:3}]);
});
});
describe('goToUrl', function() {
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller('QueriesCtrl as ctrl', {
'$scope': scope
});
}));
it('should call UserQuery.process()', function() {
spyOn(UserQuery, 'process');
scope.ctrl.goToUrl();
expect(UserQuery.process).toHaveBeenCalled();
});
});
});
@ चंदमानी, मैं मोचा-चाई के लिए नया हूं, कृपया http://stackoverflow.com/questions/28606056/mocha-chai-test-case-for-angular-configuration-file पर पोस्ट की गई इसी समस्या के साथ मदद कर सकता है – mayank