Framework do zapoznania się z testami i mockowaniem

0

Jaki polecacie framework do rozpoczęcia(zapoznania się) mockowania w testach jednostkowych asp.net mvc?
Dużo zależności.

1

NSubstitute

0

A dlaczego akurat on?

W necie jest wiele innych równie polecanych np. moq.

Możesz coś napisać od siebie?

A co z wbudowanym w VS frameworkiem do testowania?

1

A co z wbudowanym w VS frameworkiem do testowania?

VS AFAIR nie ma wbudowanego frameworka do mockowania (fakt, ma do testów - MSUnit czy jak to się tam zwie, ale to trochę nie do tego służy).

A dlaczego akurat on?

NSubstite jest proste, przejrzyste i przyjemne, np (pisane z palca):

someServiceMock.SomeMethod().Returns(SomeValue);

Zero zbędnych informacji i czyta się to naprawdę fajnie.

Z kolei moq:

someServiceMock.Setup(x => x.SomeMethod()).Returns(someValue);

Tutaj jest trochę więcej rzeczy, jak np. Setup, dziwna lambda. Po prostu (IMO) przyjemniejsze jest NSubstitute.

0

Ok dzięki ;)

Tzn. MSUNIT + NS... mogę stosować jednoczenie? W VS pisać za pomocą NS...?

0

Tzn. MSUNIT + NS... mogę stosować jednoczenie?

Tak, one są do 2 różnych rzeczy, nie gryzą się w niczym.

W VS pisać za pomocą NS...?

Jeśli musisz. Dużo bardziej popularne (więc mające więcej narzędzi i generalnie lepsze wsparcie społeczności) są NUnit i xUnit (osobiście wolę xUnit).

0

Hmm w pracy piszą w wbudowanym z VS. Wydaje się prosty w obsłudze testclass i testmethod i to wszystko ;D Do tego ma jakieś Fake obiekty.

Sprawdzę te co podałeś ;)

0

NUnit w przeciwieństwie do MSTest pozwala np. na sprawdzenie, czy metoda rzuci wyjątek - bo ma na to asercję, atrybut na poziomie metody testowej może dać fałszywie pozytywny wynik, a na dodatek pozwala na przekazywanie parametrów do metod testowych (TestCase). No i pozwala na ładniejsze pisanie asercji, przez: Assert.That(actual, Is.EqualTo(expected)). A dzięki wtyczkom np. tak: actual.Should(Be.EqualTo(expected)).

Można też podejść do testowania w ogóle inaczej, np. łącząc Fixie i Shoudly.

0

To przykuwający argument.

Rozumiem, że stosując xUnit do każdego projektu w solucji będę musiał dogrywać framework z nugeta?

0

Nie do każdego tylko do każdego testowego. (No i technicznie nie musisz przez nugeta, ale tak jest wygodniej.)

1 użytkowników online, w tym zalogowanych: 0, gości: 1