Что Steak добавляет помимо использования Capybara и RSpec в тестировании Rails? - PullRequest
9 голосов
/ 23 января 2011

Я пытаюсь понять необходимость Стейка.Я понял, что это похоже на Cucumber, за исключением того, что вы можете использовать чистый ruby ​​вместо сопоставления ваших спецификаций английского языка с ruby, как в Cucumber, но он говорит, что он в основном добавляет оболочку для RSpec DSL и позволяет вам использовать это

взято из: http://jeffkreeftmeijer.com/2010/steak-because-cucumber-is-for-vegetarians/

module Spec::Example::ExampleGroupMethods
  alias scenario example
  alias background before
end

module Spec::DSL::Main
  alias feature describe
end

Это все?Я вижу из примеров, что вы все еще выполняете тяжелую работу с использованием средств сопоставления Capybara и RSpec. Так почему бы просто не использовать Capybara с RSpec вместо добавления усложнения, такого как стейк, поверх него?Являются ли описания приемки на английском языке единственным ценным предложением, или я что-то упускаю?

Спасибо

Ответы [ 2 ]

19 голосов
/ 23 января 2011

Технически говоря, Стейк просто добавляет три вещи:

  • Некоторые синтаксический сахар в форме псевдонимов (сценарий, фон, функция), которые напоминают разработчикам, что онинаписание спецификации приемки, а не обычной.

  • Пара удобных генераторов для Rails, которые помогают разработчикам быстро настроить новый проект или новую спецификацию

  • Рейк поддержка для запуска ваших приемочных спецификаций, в частности, среди прочего.

Вы можете думать о Стейке как оминимальное расширение RSpec.Но даже более важными, чем технические, являются нетехнические вещи, связанные со Стейком:

  • Он предоставляет имя для выполнения принятия BDD с RSpec.Сказать, что вы используете Steak, короче, чем объяснять, какой тип тестирования вы практикуете.

  • Он предоставляет сообщество (список рассылки, вики, твиттер-аккаунт ...) разработчиковпроводить эту конкретную форму тестирования, обмениваться опытом, проблемами и лучшими практиками.

Я не думаю, что Стейк добавляет каких-либо сложностей для тех, кто знаком с RSpec, но если вы так думаете, и вы нене заботьтесь обо всех предыдущих вещах, тогда вам не нужно использовать RSpec вообще, вы, вероятно, будете счастливее, используя только Test :: Unit + Capybara.

2 голосов
/ 06 апреля 2013

Ваша догадка, возможно, верна, и Стейк еще больше сбивает с толку пространство имен тестирования rSpec.

Каталог 'accept', например, подразумевает, что вы проводите приемочное тестирование со стейком, что редко встречается и обычно является причинойвы используете стейк вместо огурца.

Более точное определение см. в http://en.wikipedia.org/wiki/Acceptance_testing

Поскольку вы исключаете огурец и используете rSpec, который обычно не известен какDSL, который читают заинтересованные лица / нетехнические аналитики, более подходящим может быть интеграционное тестирование:

http://en.wikipedia.org/wiki/Integration_testing

Мы отказываемся от стейка в пользу нативных спецификаций 'request' и 'feature' rSpecs, которые по сути то же самое из коробки.Возможно, стоит проверить их.

https://www.relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec https://www.relishapp.com/rspec/rspec-rails/docs/feature-specs/feature-spec

...