Revenind într-un pic mai mult. NET după câțiva ani de neutilizare full-time, și întrebam ce pachete bune de testare unitate sunt în aceste zile.
Sunt familiarizat cu NUnit (cu câțiva ani în urmă), și am jucat pe scurt cu IronRuby, cu scopul de a obține ceva de genul rspec merge, dar nu știu prea mult dincolo de asta.
Îmi dau seama că pot Google pentru asta și o pot numi o zi, dar cred că este posibil să primesc un răspuns mai bun și mai bine informat de a pune o întrebare aici :-)
Sugestii?
Îmi place MbUnit , er, Gallio . Cel mai important pentru mine este să am un suport bun în cadrul Visual Studio. Pentru aceasta, folosesc Resharper , care are un alertă MbUnit . O mulțime de oameni par să-i placă, de asemenea, testul de testare TestDriven.NET .
Îmi place TestDriven.NET (chiar dacă folosesc ReSharper) și sunt destul de mulțumit de < o href = "http://www.codeplex.com/xunit" rel = "nofollow noreferrer"> XUnit.net . Folosește Fapte în loc de Teste pe care mulți nu le place, dar îmi place diferența de terminologie. Este util să vă gândiți la o colecție de fapte automate probabile despre software-ul dvs. și să vedeți ce încălcați atunci când faceți o schimbare.
Rețineți că Visual Studio 2008 Professional (și de mai sus) vine acum cu unitatea de testare integrată (care a fost disponibilă numai cu Team System Editions) și poate fi potrivită pentru nevoile dvs.
Sunt atât de mulți nebuni. Băieți buni, cred.
Sunt sigur că sunt bine. M-aș îndepărta însă de MSTest, cu excepția cazului în care vă bucurați de confortul de a avea totul într-un IDE din cutie.
Scott Hanselman has a podcast on this very topic.
xUnit.net pare să ofere o abordare puțin diferită față de N / MB / MS / Unit, ceea ce este interesant.
În căutarea unei soluții asemănătoare cu rspec (pentru că Îmi place Îl iubesc pe rspec), am întâlnit, de asemenea, NSpec , care arată puțin textual, dar combinată cu addon-ul NSpec Extensions pentru a utiliza C # 3 metode de extensie, arata destul de frumos.
Utilizăm NUnit și MBUnit aici. Utilizăm TestDriven.NET pentru a rula testele de unitate din Visual Studio. Folosim RhinoMocks ca un frame mock.
Am folosit pentru a utiliza NUnit, dar am trecut la MbUnit, deoarece are mai multe caracteristici. Îmi place RowTest. Vă permite să parametrizați testele. NUnit are un suport bit de gunoi mai bun, deși. Folosesc ReSharper pentru a rula testele MbUnit. Am avut probleme cu metoda TestDriven.NET care rulează metodele SetUp pentru MbUnit.
Aceasta este într-adevăr o opinie personală din partea mea (cred că este redundantă, deoarece este un forum). NUnit, MSTest, ect toate fac destul de mutt același lucru. Cu toate acestea, consider că NMock este indispensabil.
NMock sau orice pachet de batjocură nu este unitate de testare, dar face atât de mult mai ușor de a face unitatea de testare pe care ar trebui să fie.
Stick la NUnit. Nu mergeți nicăieri lângă MSTest.
NUnit + ReSharper este o bucurie absolută de a lucra cu.
Am folosit pentru a utiliza NUnit, dar acum tind să utilizeze MbUnit, pentru două caracteristici cheie: 1. Caracteristica RowTest vă permite să executați cu ușurință același test pe diferite seturi de parametri, ceea ce este important dacă doriți cu adevărat o acoperire completă. 2. Caracteristica Rollback vă permite să executați teste împotriva bazei dvs. de date în timp ce derulați modificările după fiecare testare, menținând baza de date exact în aceeași stare de fiecare dată. Și este la fel de ușor ca adăugarea atributului [Rollback].
Un alt aspect frumos al lui MbUnit este că sintaxa sa este aproape identică cu cea a NUnit, deci dacă aveți un pat întreg de testare deja în locul lui NUnit, puteți să dezactivați referințele fără a fi nevoie să modificați codul (foarte mult?).
I have made a small example of testing a .net lib using ironRuby: http://khebbie.dk/post/2008/08/Example-of-using-ironRubys-mini_rspec-library.aspx
Folosesc următoarele:
TestDriven.NET - Unit Testing add on for Visual Studio
Typemock Isolator- Mocking framework for .Net Unit Testing
NUnit - An open source unit testing framework that is in C#.
Aceasta este o întrebare veche, dar s-ar putea să fie interesant faptul că Gallio v3.1 suportă acum RSpec prin IronRuby.