Sto imparando a creare semplici unit test per eventualmente (e spero) iniziare a fare solo TDD; per ora sto provando a scrivere test per il codice già scritto per vedere cosa potrebbe causare problemi. Questo è uno di questi.
Diciamo che ho questa semplice classe (con Typescript- > 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;
}
}
E lo uso in questo modo:
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()
non ha bisogno di restituire nulla, ma a causa di ciò non posso testarlo. Quando creo un test unitario, dovrei rifattorizzare il codice?
Se facessi TDD, dovrei sempre creare metodi che restituiscano qualcosa solo per poterlo testare? O mi manca qualcosa?
P.S. Puoi vedere ed eseguire il codice qui