Ho la seguente semplice implementazione:
var VALIDATION_TYPES = {
ERROR: 1,
WARNING: 2
};
var validationRules = {};
this.addErrorRule = function (event, rule) {
addValidationRule(event, VALIDATION_TYPES.ERROR, rule);
};
var addValidationRule = function (event, type, rule) {
if (!validationRules[event]) {
validationRules[event] = {};
validationRules[event][VALIDATION_TYPES.ERROR] = [];
validationRules[event][VALIDATION_TYPES.WARNING] = [];
}
validationRules[event][type].push(rule);
};
Mi chiedo se addErrorRule debba essere testato unitamente e se sì, come? Devo esporre validationRules
oggetto a unit test?
EDIT:
Potrei modificare il mio addValidationRule
per restituire il numero di regole aggiunte e controllare quel numero nel mio test:
var addValidationRule = function (event, type, rule) {
var countAddedRules = 0;
if (!validationRules[event]) {
validationRules[event] = {};
validationRules[event][VALIDATION_TYPES.ERROR] = [];
validationRules[event][VALIDATION_TYPES.WARNING] = [];
}
var originalCount = validationRules[event][type].length;
validationRules[event][type].push(rule);
countAddedRules = originalAddedRulesCount - validationRules[event][type].length;
return countAddedRules;
};