Неразбериха с инфраструктурой тестирования Rails 3

Я уже много лет смотрю RailsCast Райана Бейтса, и я также являюсь клиентом платной части сайта. Я научился BDD, когда смотрел эпизоды Cucumber в прошлом.

Теперь я узнал о TestUnit, RSpec, Capybara и MiniTest. Я начинаю путаться в том, что есть что.

В чем разница между этими 4 пунктами? Я знаю, что Cucumber выполняет функции обычного текста, и я думаю, что это можно считать интеграционным тестированием.

Но теперь я также вижу, что последние версии Cucumber требуют MiniTest? Является ли Cucumber просто DSL, который находится поверх среды тестирования?

Я также знаю, что в RSpec есть собственный синтаксический сахар для выполнения утверждений, блоки «описания». И похоже, что MiniTest также поддерживает этот синтаксис.

Я знаю, что Capybara используется для просмотра сгенерированного содержимого веб-страницы.

Вот мой вопрос:

Если я создаю новое приложение Rails 3.2, какую комбинацию этих тестовых программ мне следует использовать? Что было бы особенно полезно, так это список, который объясняет, как эти драгоценные камни и связанные с ними процессы дополняют друг друга, где это применимо, например:

Cucumber is a DSL for driving BDD
Cucumber is for integration tests and is based on creating user stories that are customer-readable
It implements its tests behind the scenes via MiniTest
MiniTest is a new testing framework that comes with Ruby 1.9 and is very fast.
MiniTest is also used for unit testing, such as testing controllers and models
It does not yet have as many features as RSpec
Cucumber also uses Capybara to access DOM elements from a javascript-enabled browser simulator such as Selenium
When you test in Rails, you have the ability to do the following kinds of tests: controllers, views, models, and integration (MVC together)
Some people just do integration and model testing, because they feel that integration testing handles enough of the controller and view testing itself, and anything too complex can simply be moved up to the model

Большое спасибо за любую помощь, которую вы можете предложить, чтобы прояснить эти идеи для меня.

6
задан AKWF 25 February 2014 в 14:34
поделиться