C# · Programowanie

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.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s