Niedawno pracowałem nad projektem, który stał się ciężki i zależał od tego, jak wykorzystać kontener z AutoMockingiem, aby nieco uprzątnąć moje testy i zmniejszyć ich łamliwość.Czy korzystanie z AutoMocking pojemników dobre czy złe praktyki?
Słyszałem argumenty przeciwko używaniu ich przez purystów TDD/BDD, stwierdzając takie rzeczy jak: Nie jest od razu oczywiste, które zależności są wymagane przez podmiot testowy, lub można dodać zależności, których naprawdę nie potrzebujesz. Żaden z nich nie brzmi jak szczególnie silny argument przeciwko używaniu ich.
Z mojego punktu widzenia wprowadzenie go umożliwiłoby mi refaktoryzację zgodnie z wymaganiami, usunięcie i wprowadzenie zależności zgodnie z wymaganiami biznesowymi, bez konieczności ciągłego powracania do testów i wprowadzania nowych mocks/stubów tylko po to, aby kod mógł zostać skompilowany.
Czy automatyczne blokowanie jest uważane za dobrą/złą praktykę? Czy istnieją szczególne sytuacje, w których należy lub nie należy ich używać?
Absolutnie zgadzam się w 100% z tym - stało się tak przede wszystkim dlatego, że pracuję nad projektem, który opiera się na Orchard i aby skorzystać z dużej ilości dobroci Orchard, oznacza wiele wstrzyknięć (czasem zbyt wiele w moje zdanie) o zależnościach w niektórych klasach. Próbowałem tworzyć tu i tam kilka fabryk, aby owijać podobne zależności i zmniejszyć liczbę zależności, ale nadal jest nieporęczny w niektórych miejscach. W tym przypadku kontener "AutoMocking" ograniczyłby zmiany łamania, które nieuchronnie powodują zmiany zależności. – levelnis