Jak NUnit dla C # wypada w porównaniu z narzędziem Test jednostkowy zintegrowanym z Visual Studio

12

Muszę pracować w zespole, aby opracować aplikację komputerową klasy średniej opracowaną przy użyciu C # .NET. Wcześniej nie stosowałem testów jednostkowych i rozwoju opartego na testach. Wiem, że istnieje wiele narzędzi i ram dla aplikacji C # do testowania jednostkowego. Obecnie wiem o Nunit i narzędziu do testowania jednostek zintegrowanym z Visual Studio.

Chciałbym wiedzieć, jak się porównują?

Shamim Hafiz
źródło

Odpowiedzi:

14

Z pewnością pewne elementy się pokrywają. NUnit jest poprzednikiem, w związku z czym jest bardziej dojrzały. Framework C # Unit Test jest młodszy, ale zintegrowany z Visual Studio.

Pochodzę ze świata Java, w którym JUnit jest królem (są inne, ale żadne nie są tak popularne), a NUnit 2.5.x jest naprawdę dobrym dopasowaniem do sposobu działania JUnit 4. W rzeczywistości działa znacznie lepiej niż odpowiednik Java.

Jeśli chodzi o definicję testu, wolę NUnit. Pewnie MS Test ma podobne (ale różne) atrybuty, które stosujesz do swoich klas, ale uważam, że brakuje niektórych funkcji, które mogą zaoszczędzić ci trochę pracy przy niektórych rodzajach testów. Możesz sprawdzić podobną dyskusję na temat StackOverflow .

Podoba mi się nowy model asercji wbudowany w NUnit (używa stwierdzeń w stylu Hamcrest ), ponieważ oba są łatwe do odczytania i łatwo rozszerzalne.

  • NUnit będzie miał lepszą obsługę stron trzecich, MS Test będzie miał lepszą integrację (po wyjęciu z pudełka).
  • NUnit będzie miał większą elastyczność i rozszerzalność, w tym obszarze ucierpi MS Test.
  • Oba uruchom testy jednostkowe i sprawdź swoje wyniki, oba będą działać dla TDD.
Berin Loritsch
źródło
3

Jedyną prawdziwą różnicą, którą zauważyłem, gdy musiałem utworzyć skrypt kompilacji do uruchomienia na dedykowanym serwerze MSBUILD z TFS, ustawienie nUnit i uzyskanie wyników testu nUnit było prawdziwym bólem, ustawienie go i uzyskanie wyników dla MSTest było dziecinnie proste.

Wystąpił również problem z Resharper, w którym test MSTest nie mógł zostać uruchomiony z testera. W nowszych wersjach jest to naprawione, więc jeśli masz starą wersję Resharpera, nadal może to stanowić problem.

Ten post autorstwa Roy Oshereve jest wciąż dobrym przeglądem.

ps: usunąłem moją drugą odpowiedź, wcale nie było pomocne, przepraszam za to.

KeesDijk
źródło