Giovedi mentre tornavo da Luserna, nell'ultimo tratto di treno non ho resistito a tenere il portatile chiuso ed ho un po esteso quello che avevo iniziato in un precedente post. L'argomento è quello di fare test con interfacce fluenti, ed un post di adrian il giorno dopo cade a fagiolo. In sostanza le interfacce fluenti permettono di scrivere codice che è sicuramente più chiaro e quindi più semplice da mantenere, meno error prone e cosi via. In una mezzoretta di treno regionale sballottante ho preso il progetto relativo al post precedente, ed ho modificato un paio di cose per permettere una sintassi di questo tipo.
[Test]
public
void TestChainWithOrNoneExplicit() {
List<AnEntity> al = CreateTestListOne();
Assert.That(al,
MyHas.Twice.Property("PropertyA", "q")
.Or.One.Property("PropertyB", "w"));
}
Il codice è ancora veramente grezzo e sicuramente ci sono molti punti dove intervenire, ma nonostante questo la sintassi è decisamente piacevole. Leggendo il test e vedendo Has.Twice.Property(..).Or.One.Property(..) si capisce subito che stiamo cercando in una collection due elementi con la propertyA uguale a "q" oppure un elemento con PropertyB pari a "w". Il codice lo trovate qui, è scritto sul treno per cui ;)…
Alk.