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
.