Devo essere unit test delle proprietà "non dinamiche"? [duplicare]

3

C'è un dibattito in corso sulla proprietà seguente, e se dovrebbe essere testato o meno. Stiamo lavorando in C #.

MyClass prop => value;

Devo scrivere il seguente test unitario:

IMyClass _viewModel = new MyClass();
Mock value = new Mock<Bar>();
Assert.AreEqual(value, _viewModel.Prop);

Personalmente, dico SÌ, perché quella proprietà è ancora pubblica, visibile nell'interfaccia IMyClass , ed è un requisito semplice, come molti altri. Per questo motivo, il suo stato iniziale dovrebbe essere testato. In questo caso, questo è il suo unico stato, ma è irrilevante.

Inoltre, l'oggetto potrebbe cambiare e diventare

MyClass prop => value + othervalue;

E lentamente diventa più intelligente. Credo che tu debba essere a prova di futuro e, cosa più importante, essere semplicemente sicuro al 100% dello stato iniziale dei tuoi oggetti.

Ora, d'altra parte, l'opinione opposta è la seguente:

Hai superato il test, quello che stai essenzialmente testando è (true == true), perché quella proprietà non cambierà, e rende il test inutile.

Non possiamo trovare un accordo, qualcuno ha qualche conoscenza o saggezza da condividere?

Inoltre, devo essere assolutamente onesto, stiamo parlando di test di Colors in questo caso molto specifico, ovvero verificare che _viewmodel.backgroundcolor sia effettivamente _theme.defaultBackgroundColor , o, come a loro piace dire white == white , e come Dico whiteTodayButMaybeRedOrGreenTomorrow == white .

    
posta Gil Sand 14.03.2017 - 10:37
fonte

1 risposta

2

NON testerei le proprietà semplici. Se è possibile che qualche "logica" venga aggiunta ad essa, potrei considerarla, ma poi di nuovo bisogna considerare se sia possibile o meno. Qualche altro metodo che dipende da questo valore di proprietà (caso comune in esempi di modelli di visualizzazione) dovrebbe avere una logica di validazione che dovrebbe essere testata e che il test inizierebbe a non funzionare se la logica delle proprietà cambia.

    
risposta data 14.03.2017 - 18:29
fonte

Leggi altre domande sui tag