Autofixture

Dlaczego

Gdy testuje kod często / zawsze pojawia się potrzeba generowania jakichś danych, czasem mają one sens, czasem są zupełnie niepotrzebne z punktu widzenia testu, a jednocześnie wymagane przez kod.
Pojawiają się wtedy najczęściej zapisy “foo”, “bar”,”dupa”, “not-important”, “asdqweadasdf0923409” czy inne.
Zamiast takich wartości można mieć inne, jakie? Nie ważne! Co?! 😲

Gdy testujesz kod, to potrzebujesz zawsze sprawdzić, czy tekst to “jakiś_tekst” jest równy “jakiś_tekst”? Czy może po prostu jest taki jaki powinien być nie ważne, jaką będzie mieć wartość? (to samo tyczy się wartości liczbowych)

Skąd brać dane

Jarek, cwaniaku, to jak? Ano można przez pisanie tego inline w teście, co spowoduje, że testy osiągną rozmiary amerykańskie 😉 i będą duplikowane w każdy teście.
Można przez mother object pattern (nie ma sensownego linka, poszukajcie różnych opisów) – to taki wielki obiekt, który zajmuje się generowaniem takich danych.
Można przez: autofixture 👈😲👏

Continue reading