Ho una funzione molto comune che ho sempre testato unitamente nello stesso modo, ma mi chiedo se c'è una soluzione migliore o se è anche possibile che sia coinvolto un odore di codice. Sembra un caso molto semplice ma ho una funzione che cancella le proprietà dell'oggetto. Lavorando in JavaScript, ecco un semplice esempio:
function Dog(name, owner) {
this.name = name;
this.owner = owner;
this.reset = function() {
this.name = '';
this.owner = '';
};
}
var puppy = new Dog('Max', 'Timmy');
console.log(puppy.name) // logs "Max"
puppy.reset();
console.log(puppy.name) // logs ""
Normalmente eseguo il test dell'unità impostando le proprietà, chiamando la funzione di cancellazione e quindi asserendo che le proprietà sono state effettivamente impostate sui valori predefiniti o "cancellate". Il motivo per cui sto chiedendo una soluzione così semplice è che, a causa del dogma, i test unitari dovrebbero avere solo 1 asserzione. Penso anche che una funzione di tipo "reset" potrebbe sfuggire di mano quando si tratta di un gran numero di proprietà (cioè un oggetto che è destinato a memorizzare lo stato di una SPA).
Sono certo che sto pensando troppo a questo, ma volevo ottenere qualche opinione / critica esterna per qualcosa che ho fatto per anni con lo stesso comportamento. Non riesco proprio a pensare a un modo migliore per farlo.
Un'altra domanda potrebbe essere, sono necessari test unitari che riguardano una funzione di ripristino? Per me sembrano quasi solo testare l'implementazione del linguaggio - simile a una proprietà getter / setter.