Estou aprendendo a criar testes de unidade simples para eventualmente (e espero) começar a fazer apenas TDD; por enquanto estou tentando escrever testes para códigos já escritos para ver o que pode causar problemas. Este é um deles.
Digamos que eu tenho essa classe simples (com 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 eu uso desta maneira:
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()
não precisa retornar nada, mas por isso não posso testá-lo. Ao criar um teste de unidade, devo refatorar o código?
Se eu estivesse usando TDD, sempre deveria criar métodos que retornam algo apenas para poder testá-lo? Ou estou faltando alguma coisa?
PS Você pode ver e executar o código aqui