Acho que o uso do “andThen()” pode ficar ruim quando precisar encadear muitas validações. Se não tiver, talvez seja interessante ter um método que já recebe n validações ao invés de ficar encadeando “anThen(Should.be(andThen(Should.be(…))))”
Ataxexe
regis_hideki:
Muito interessante. Algumas coisas que acabei pensando:
Acho que o uso do “andThen()” pode ficar ruim quando precisar encadear muitas validações. Se não tiver, talvez seja interessante ter um método que já recebe n validações ao invés de ficar encadeando “anThen(Should.be(andThen(Should.be(…))))”
O shouldHaveAValue() foi criado a parte da classe Should. Eu estou pensando em algumas formas de injetar mais métodos aí dentro ou extraí-los pra deixar a sintaxe sempre igual (é mais ou menos por isso que tem o Should.be que recebe um Predicate, aí eu poderia criar um helper como Should.have(aValue())).
Não usei o “Must” porque “Should” é um termo mais usado no BDD.
Quanto ao andThen, é do Java mesmo (das interfaces funcionais), eu vou criar outras interfaces funcionais pra ficar melhor esse código (e prever as checked exceptions também).
Eu acho que ficou bem melhor por ter diminuído bastante a quantidade de métodos na API. O único chato mesmo foi o aumento na quantidade de parêntesis no código, mas isso é uma consequência que eu acredito não ser tão negativa (pelo menos por enquanto).