Estoy aprendiendo a crear pruebas de Unidad simples para eventualmente (y con suerte) comenzar a hacer solo TDD; por ahora estoy tratando de escribir pruebas para el código ya escrito para ver qué puede causar problemas. Este es uno de ellos.
Digamos que tengo esta clase simple (con Typecript-> Javascript):
class PrivateStuff {
greeting: string;
private _thisIsPrivate;
constructor(isPrivate: boolean) {
this._thisIsPrivate = isPrivate;
}
setPrivate(option) {
this._thisIsPrivate = option;
console.log("_thisIsPrivate changed to : " + option);
}
getPrivate() {
console.log("_thisIsPrivate is : " + this._thisIsPrivate);
return this._thisIsPrivate;
}
}
Y lo uso de esta manera:
let privateStuff = new PrivateStuff(false);
let buttonSet = document.createElement('button');
buttonSet.textContent = "Set True";
buttonSet.onclick = function () {
privateStuff.setPrivate(true);
}
let buttonGet = document.createElement('button');
buttonGet.textContent = "Get";
buttonGet.onclick = function() {
console.log(privateStuff.getPrivate());
}
document.body.appendChild(buttonSet);
document.body.appendChild(buttonGet);
setPrivate()no necesita devolver nada, pero por eso no puedo probarlo. Al crear una prueba unitaria, ¿debo refactorizar el código?
Si estuviera haciendo TDD, ¿debería crear siempre métodos que devuelvan algo solo para poder probarlo? ¿O me falta algo?
PD Puedes ver y ejecutar el código aquí