मैं अपने कोणीय अनुप्रयोग में एक सेवा है एक कोणीय सेवा है कि कुछ इस तरह दिखता में 'निजी' कार्यों का परीक्षण करने के लिए:साथ कर्मा और जैस्मीन
angular.module('BracketService', []).factory('BracketService', [function() {
function compareByWeight(a, b) {
return a.weight - b.weight;
}
function filterWeightGroup(competitors, lowWeight, highWeight) {
//filter stuff
}
function createBracketsByWeightGroup(weightGroup) {
//create some brackets
}
//set some base line values
var SUPER_HEAVY_WEIGHT = 500;
var SUPER_LIGHT_WEIGHT = 20;
return {
//create brackets from a list of competitors
returnBrackets: function(competitors) {
var brackets = {};
//get super light weights
brackets.superLightWeights = createBracketsByWeightGroup(
filterWeightGroup(competitors, 0, SUPER_LIGHT_WEIGHT)
.sort(compareByWeight)
);
brackets.superHeavyWeights = createBracketsByWeightGroup(
filterWeightGroup(competitors, SUPER_HEAVY_WEIGHT, Infinity)
.sort(compareByWeight)
);
brackets.middleWeights = createBracketsByWeightGroup(
filterWeightGroup(competitors, SUPER_LIGHT_WEIGHT, SUPER_HEAVY_WEIGHT)
.sort(compareByWeight)
);
return brackets;
}
};
}]);
मैं चाहते हैं इकाई परीक्षण न सिर्फ कार्य/संपत्तियां जो रिटर्न स्टेटमेंट में उजागर होती हैं, लेकिन उन कार्यों को भी जो रिटर्न स्टेटमेंट के बाहर हैं।
मेरा परीक्षण वर्तमान में कुछ इस तरह की स्थापना की है:
describe('BracketService', function() {
beforeEach(module('bracketManager'));
it('calling return brackets with no competitors will return 3 empty weight classes', inject(function(BracketService) {
var mockCompetitors = [];
var mockBracketResult = {superHeavyWeights: [[]], superLightWeights: [[]], middleWeights: [[]]};
expect(BracketService.returnBrackets(mockCompetitors)).toEqual(mockBracketResult);
}));
});
लेकिन यह कैसे मैं तुलना, फिल्टर और createBrackets कार्यों कि वापसी कथन द्वारा उजागर नहीं कर रहे हैं परीक्षण करते हैं?
धन्यवाद!