W jaki sposób testujesz jednostkę javascript, która używa i modyfikuje DOM?Testowanie jednostki Javascript, który obejmuje DOM
Podam prosty przykład. Walidator formularzy, który sprawdza puste pola tekstowe, napisane w javascript i używające JQuery.
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;
};
}
Zastosowanie:
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');
}
Co jest najlepsze praktyki dla próby badanej jednostki czymś takim?
Sprawdź PhantomJS. http://phantomjs.org/ – Brad
Zobacz także [Testowanie manipulacji DOM w teście Jasmine] (http://stackoverflow.com/questions/7672389/testing-dom-manipulating-in-jasmine-test) –
. i CasperJs: http : //casperjs.org/ – kaore