Для коммерческих альтернатив:
- "Twist" компании Thoughtworks
- "Business Story Manager" Пола Джеррарда, который также играет роль в некоторых шаблонах BDD более высокого уровня, выявление заинтересованных сторон и отслеживание взаимосвязи сценариев с более масштабными требованиями
Это единственные два, о которых я знаю. Ни один из них не имеет большого количества последователей в сообществе BDD. Я считаю, что двумя наиболее часто используемыми инструментами являются JBehave и Cucumber (которые, как указывает @kazakovs, также доступны для JVM). Они помогают фиксировать англоязычные сценарии, которые будут понятны как разработчикам, так и бизнес-аналитикам. Я также использовал (эквивалент .NET) Fitnesse с Slim за ним; немного CSS делает его похожим на другие, а также позволяет использовать таблицы.
Тем не менее, большинство инструментов BDD предназначены для сценариев с полным стеком, общесистемных, обычно без каких-либо имитаций или, возможно, с заменой сторонних библиотек пользовательской структурой. Мокающие библиотеки на самом деле не настроены для работы в таком масштабе.
Если вы хотите интегрировать Mockito и JUnit, может показаться, что вы пытаетесь выполнить BDD в меньшем масштабе, с классами или небольшими группами классов. Именно так изначально зародился BDD, и он совершенно действителен.
С момента создания BDD такие инструменты, как JUnit, улучшились, а Mockito не существовало! Так что инструменты BDD больше не особо нужны. Для кода уровня класса я был бы рад просто использовать комментарии с данными, когда и тогда на месте, например это (это C#, но Java будет похожей).
В качестве альтернативы на более высоком уровне вы всегда можете создать маленький DSL. Это не заняло у меня много времени, и это понятно даже для нетехнических деловых людей. Он работает с использованием JUnit, и вы можете поместить туда Mockito, если хотите (но я все еще подозреваю, что вы смешиваете проблемы, если хотите это сделать).
Еще одним преимуществом DSL является то, что это быстрый и дешевый способ начать работу, без каких-либо накладных расходов на настройку Cucumber или JBehave; но созданные шаги легко переносятся на что-то вроде JBehave позже (вы просто перемещаете код в шаги регулярных выражений JBehave, и я был бы удивлен, если бы вы не могли сделать что-то подобное с Twist). Поскольку вы не уверены в своих требованиях, я бы порекомендовал этот маршрут, так как он поможет вам начать работу и получить больше информации о том, что вам нужно, очень дешево.
person
Lunivore
schedule
29.10.2013