Wie gehst du über Unit Testing Javascript, das das DOM verwendet und ändert?Unit Testing Javascript, das das DOM beinhaltet
Ich gebe ein einfaches Beispiel. Ein Formularvalidierer, der nach leeren Textfeldern sucht, die in JavaScript geschrieben sind und JQuery verwenden.
function Validator() {
this.isBlank = function(id) {
if ($(id).val() == '') {
return true;
} else {
return false;
}
};
this.validate = function(inputs) {
var errors = false;
for (var field in inputs) {
if (this.isBlank(inputs[field])) {
errors = true;
break;
}
}
return errors;
};
}
Verbrauch:
var validator = new Validator();
var fields = { field_1 : '#username', field_2 : '#email' };
if (!validator.validate(fields)) {
console.log('validation failed');
} else {
console.log('validation passed');
}
Was ist die beste Praxis für so zu Unit-Test etwas versuchen?
Auschecken PhantomJS. http://phantomjs.org/ – Brad
Siehe auch [Testen der DOM-Manipulation im Jasmin-Test] (http://stackoverflow.com/questions/7672389/testing-dom-manipulating-in-jasmine-test) –
.und CasperJs: http : //casperjs.org/ – kaore