Jestem właśnie w trakcie lektury książki „Testy jednostkowe” Roya Osherove. Jest w niej ciekawy rozdział dotyczący frameworków izolacji.
Frameworki izolacji
Co to są frameworki izolacji? Są to takie interfejsy API, dzięki którym w prosty i szybki sposób możemy tworzyć tzw. fałszywe obiekty (mocki). Używając ich, nie musimy pisać ręcznie powtarzalnego kodu. Każdy zna zapewne kilka takich frameworków. Okazuje się, że można je podzielić na 2 kategorie.
Frameworki izolacji: ograniczone
Na przykład Moq, NSubstitute czy FakeItEasy.
Są pewne rzeczy, które te frameworki nie potrafią zrobić. A mianowicie nie mogą imitować:
- metod statycznych,
- metod niewirtualnych,
- metod niepublicznych.
Dlaczego tak się dzieje? Dlatego, ponieważ generują i kompilują kod w czasie wykonywania programu. Z tego powodu są ograniczone przez kompilator i IL – dokładnie tak samo jak my, gdybyśmy sami pisali kod.
Frameworki izolacji: nieograniczone
Na przykład Typemock Isolator, JustMock i MSFakes.
Czym się różnią od frameworków ograniczonych? Działają zupełnie inaczej. Bazują na profilerze, tzn. wykorzystują API profilera. W skrócie chodzi o to, że istnieje możliwość modyfikacji i wstrzykiwania nowego kodu IL do pamięci. W ten sposób nie są ograniczone kompilatorem tak jak programista, który pisze kod. Czyli pozwolą na imitację metod statycznych, prywatnych oraz niepublicznych.
Podoba Ci się to, co tworzę? Chcesz dostawać informacje o:
– wydarzeniach, które organizuję lub wspieram (np. konferencje, meetupy, webinary)
– inicjatywach, które organizuję lub wspieram (np. GeekWeekWro, DevAdventCalendar)
– moich prelekcjach, kursach i szkoleniach
– wyróżnionych artykułach z mojego bloga
0% SPAMu, 100% informacji! Krótko i na temat.