Ich lerne, einfache Unit-Tests zu erstellen, um irgendwann (und hoffentlich) nur noch TDD zu machen. Im Moment versuche ich, Tests für bereits geschriebenen Code zu schreiben, um festzustellen, was Probleme verursachen könnte. Dies ist einer von ihnen.
Angenommen, ich habe diese einfache Klasse (mit 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;
}
}
Und ich benutze es so:
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()
muss nichts zurückgeben, kann es aber deshalb nicht testen. Sollte ich beim Erstellen eines Komponententests den Code umgestalten?
Wenn ich TDD mache, sollte ich immer Methoden erstellen, die etwas zurückgeben, nur um es testen zu können? Oder fehlt mir etwas?
PS Sie können den Code hier sehen und ausführen