Krótko: czy ktoś natknął się na bibliotekę podobną do ogórka Ruby'ego (czytelny dla człowieka DSL do definiowania historii przypadków użycia, które można przetestować) w sferze .NET?
Odpowiedzi:
Powinieneś także sprawdzić SpecFlow , czyli projekt open source do zrobienia BDD z .NET.
SpecFlow używa tego samego formatu definicji (Gherkin), jak ogórek, ale możesz pisać definicje kroków w .NET. Zasadniczo generuje klasy testów jednostkowych (NUnit, MsTest, xUnit itp.) Z plików funkcji, dzięki czemu można użyć tego samego silnika wykonywania testów jednostkowych, jak w przypadku prawdziwych testów jednostkowych. W ten sposób łatwiej jest również zintegrować testy funkcjonalne BDD z kompilacją integracyjną.
W najnowszych wersjach SpecFlow ma funkcję kolorowania składni dla programu Visual Studio 2010 oraz obsługę Silverlight i Mono / MonoDevelop.
Pewnie. Nazywa się Ogórek . Przykład testowania kodu .NET znajduje się w katalogu przykładów Cucumber i dokumentacji na Cucumber Wiki zarówno dla .NET, jak i Mono .
Wydaje się, że w tej przestrzeni są 3 możliwości:
Użyj Cucumber i IronRuby. Oto blog przedstawiający kilka kroków, aby rozpocząć. Wadą wydaje się być wydajność. Czytałem relacje, które mówią, że generalnie jest wolniejszy , i inne, które mówią, że po prostu bardzo wolno się kręci . Nie jest to jednak rozstrzygające, ponieważ IronRuby jest nadal w fazie aktywnego rozwoju.
Użyj Cuke4Nuke . Słyszałem, że ten produkt był polecany kilka razy. W rzeczywistości używa zwykłego Rubiego i Ogórka, ale uruchamia kod .NET przez serwer. Na szczęście cała ta komplikacja jest przejrzysta, gdy jej używasz. Cuke4Nuke nie jest już aktywnie rozwijany.
Użyj SpecFlow . To jest port .NET Cucumber. Z tego powodu może nie mieć wszystkich funkcji Ogórka i może mieć dodatkowe funkcje. Fajną rzeczą jest to, że nie musisz mieć zainstalowanego Rubiego.
W tej chwili nie wydaje się jasne, która z nich jest najlepsza. Osobiście planuję zacząć od Cuke4Nuke.
Napisałem na blogu post szczegółowo opisujący proces, który zastosowałem, aby Cucumber działał z IronRuby: http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/
StoryTeller jest w pewnym sensie powiązany, mimo że nie jest to ściśle BDD. Wydaje się, że obsługuje nieco inny rodzaj testu, ale jest napisany w .NET. Przeczytaj więcej na blogu Jeremy Millersa
BDD w prostym języku angielskim można zrobić za pomocą Concordion.NET . Specyfikacje oczekiwanego zachowania są napisane w języku HTML.
Do testów Concordion.NET można użyć dowolnych zdań o dowolnej strukturze. Na przykład nie trzeba pisać zdania typu „mając konto bankowe z saldem 10 $, gdy inicjowana jest wypłata 20 $, transakcja kończy się niepowodzeniem”. Zamiast tego można użyć dowolnego typu zdania, na przykład „transakcja o wartości 20 $ nie powiedzie się, jeśli na koncie nie ma wystarczającego salda 10 $”.
Testy Concordion.NET są wykonywane przy pomocy NUnit, który jest zintegrowany w wielu różnych środowiskach: https://github.com/concordion/concordion-net
Jest też StoryQ. Jest to skoncentrowane na programistach podejście do historyjek użytkowników, które mogą zgłaszać wycofanych klientów. http://storyq.codeplex.com
StoryQ to przenośna (pojedyncza dll), osadzona platforma BDD dla .NET 3.5. Działa w ramach istniejącego modułu uruchamiającego testy i pomaga tworzyć przyjazne dla człowieka dane wyjściowe testu (html lub tekst). Płynny interfejs StoryQ dodaje silnego pisania, inteligencji i dokumentacji do twojej gramatyki BDD.
Mam artykuł pokazujący, jak używać Cucumber z C # pod adresem http://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html Czasy działania znacznie się poprawiły dzięki IronRuby 1.0.