Testy jednostkowe

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.

Dodaj komentarz