Швидкий, чи хтось стикався з бібліотекою, подібною до огірка Рубі (читабельний DSL для визначення історій використання, які можна перевірити) у сфері .NET?
Відповіді:
Ви також повинні перевірити SpecFlow , тобто проект з відкритим кодом для створення BDD з .NET.
SpecFlow використовує той же формат визначення (Корнішон), що і огірок, але ви можете писати свої визначення кроків у .NET. Він в основному генерує класи модульних тестів (NUnit, MsTest, xUnit тощо) з ваших файлів функцій, тому ви можете використовувати той самий механізм виконання модульних тестів, як це робите з реальними модульними тестами. Таким чином, також простіше інтегрувати функціональні тести BDD до побудови інтеграції.
В останніх версіях SpecFlow має функцію розфарбовування синтаксису для Visual Studio 2010 та підтримку Silverlight та Mono / MonoDevelop.
Звичайно. Це називається Огірок . Є приклад того, як протестувати .NET-код у каталозі прикладів Cucumber та документації до Wiki-огірка для .NET та Mono .
Здається, у цьому просторі є 3 можливості:
Використовуйте огірок та IronRuby. Ось щоденник із кількох кроків, щоб розпочати з цього. Недоліком, здається, є продуктивність. Я читав розповіді, які кажуть , що це взагалі повільніше , і інші, які кажуть, що це просто дуже повільно крутитися . Однак це далеко не остаточно, оскільки IronRuby все ще активно розвивається.
Використовуйте Cuke4Nuke . Я чув, як цей продукт рекомендували кілька разів. Він насправді використовує звичайні Ruby та Cucumber, але запускає ваш .NET-код через сервер. На щастя, все це ускладнення є прозорим, коли ви ним користуєтесь. Cuke4Nuke більше не перебуває в активній розробці.
Використовуйте SpecFlow . Це .NET-порт Огірка. Через це він може мати не всі особливості Огірка, а може мати додаткові функції. Приємно те, що вам не потрібно встановлювати Рубі.
На даний момент невідомо, який із них найкращий варіант. Особисто я планую почати з Cuke4Nuke.
Я написав допис у блозі, в якому детально описував процес, за яким я керувався огірком за допомогою IronRuby: http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/
StoryTeller дещо пов'язаний, хоча це не суто BDD. Здається, він підтримує дещо інший вид тесту, але написаний у .NET. Детальніше читайте в блозі Джеремі Міллера
BDD простою англійською мовою можна зробити за допомогою Concordion.NET . Специфікації очікуваної поведінки написані в HTML.
Для тестів Concordion.NET можна використовувати будь-які речення будь-якої структури. Наприклад, не потрібно писати таке речення, як "з урахуванням банківського рахунку із залишком 10 $, коли ініціюється зняття 20 $, транзакція не вдається". Натомість може бути використано будь-який тип пропозиції, наприклад, "транзакція на 20 доларів не вдається, якщо на рахунку недостатньо залишку в 10 доларів".
Тести Concordion.NET виконуються за допомогою NUnit, який інтегрований у безліч різних середовищ: https://github.com/concordion/concordion-net
Існує також StoryQ. Це розроблений розробником підхід до історій користувачів, який може звітувати про клієнтів. http://storyq.codeplex.com
StoryQ - це портативна (одна dll) вбудована структура BDD для .NET 3.5. Він працює у вашому існуючому тестовому модулі та допомагає створити дружній для людини результат тесту (html або текст). Потужний інтерфейс StoryQ додає до вашої граматики BDD сильний набір тексту, інтелісенс та документацію.
У мене є стаття, яка показує, як використовувати огірок із C #, за адресою http://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html Час роботи різко покращився IronRuby 1.0.