मैं कोणीय मॉड्यूल है:जैस्मीन/कोणीय जेएस: इकाई परीक्षण में सेवा के लिए निर्भर सेवा इंजेक्ट करें?
var app = angular.module("SearchUI",[]);
उस में
, मैं एक सेवा "configService", कि config पैरामीटर का गुच्छा का कहना है:
app.provider("configService",function(){
//stuff here
})
मैं configService fineL
में चमेली इकाई परीक्षण भाग गया हैdescribe('configService',function(){
var configService,$httpBackend;
beforeEach(module('SearchUI'));
beforeEach(inject(function(_configService_,$injector){
configService = _configService_;
$httpBackend = $injector.get("$httpBackend");
}));
it('should have default values for configService', function(){
expect(configService.getDefaultSearch()).toEqual(['abstract','title','keyword','keywordplus'
]);
});
//other stuff
सभी परीक्षण ठीक हो जाते हैं।
हालांकि, मैं समझ नहीं कर रहा हूँ कैसे अन्य सेवा के लिए है कि इंजेक्शन बनाए रखने के लिए:
अपने आवेदन मेंअर्थात्:
app.service("SearchService",function($http,$log,configService,$q){
//stuff
search_params = configService.getDefaultSearch();
})
मेरी कल्पना:
describe('SearchService',function(){
var searchService,configService;
beforeEach(module('SearchUI'));
beforeEach(inject(function(_configService_,_SearchService_){
configService = _configService_;
searchService = _SearchService_;
}));
it('SearchService should return results', function(){
var waiting = searchService.SimpleSearch("card","wos",0);
//other stuff
कल्पना में कारण विफल रहता है simplesearch फ़ंक्शन के लिए यह आवश्यक है:
search_params = configService.getDefaultSearch(); //get the default search parameters
मेरा सवाल है, मैं किसी अन्य सेवा में आवश्यक सेवा कैसे इंजेक्ट कर सकता हूं?
क्या आप वाकई इस बात का असफल हो रहे हैं? जब तक आपको इसके मानों को बदलने के लिए configService को नकल करने की आवश्यकता नहीं है, तब तक सर्च सर्विस को आपके परीक्षणों में configService को छूए बिना इंजेक्शन दिया जाना चाहिए। – lecstor
हां, यह एक त्रुटि के साथ विफल रहता है जो इंगित करता है कि configservice शुरू नहीं हुआ था – nate
आपको प्राप्त होने वाली सटीक त्रुटि पोस्ट करें। –