У меня 6 месяцев опыта разработки на Rails. Я создал используемое сейчас веб-приложение с аутентификацией и авторизацией и postgresql db.
Я перехожу к своему второму приложению Rails, но на этот раз, после извлеченных уроков, я хотел бы разработать его с использованием TDD, поскольку я заметил, что его намного проще масштабировать и исправлять ошибки. Он медленно развивается, но в конечном итоге с ним гораздо легче справиться.
Я слышал о Rspec и Cucumber, но они меня полностью смущают.
Я хотел бы знать, в чем разница между RSpec и Cucumber и для чего они используются.
Также было бы полезно узнать, действительно ли нужна среда тестирования с точки зрения новичка (который также является единственным разработчиком).
Ответы:
RSpec и Cucumber - это среды тестирования. RSpec включает в себя традиционное модульное тестирование (что означает тестирование класса или части приложения изолированно от остальной части приложения. Итак, ваша модель выполняет то, что должна делать ваша модель, контроллер делает то, что должен делать, и т. Д.).
RSpec и Cucumber используются для приемочного тестирования (которое называется ATDD, BDD, Specification by Example и т. Д. В зависимости от того, кого вы спрашиваете). Это тесты интеграции, основанные на бизнес-кейсе, что означает, что они имитируют то, как пользователь использует приложение и использует полный стек Rails, поэтому проблемы с тем, как различные части вашего приложения работают вместе, могут быть обнаружены таким образом, что модульное тестирование не будет найти.
Основное различие между RSpec и Cucumber - это фактор удобочитаемости для бизнеса. Основная привлекательность Cucumber заключается в том, что спецификация (функции) отделены от тестового кода, поэтому владельцы ваших продуктов могут предоставить или просмотреть спецификацию без необходимости копаться в коде. Это файлы .feature, которые вы создаете в Cucumber. RSpec имеет аналогичный механизм, но вместо этого вы описываете шаг с помощью блока Describe, Context или It, который содержит бизнес-спецификацию, а затем сразу получаете код, который выполняет этот оператор. Разработчикам с этим подходом немного легче работать, но немного сложнее для нетехнических специалистов.
Что использовать? Если вы единственный разработчик и владелец продукта, то я бы придерживался RSpec, я считаю, что техническому специалисту это легче понять, предлагает несколько преимуществ в том, чтобы держать вещи в рамках и под контролем, и не дает вам возиться с RegEx для тестирования. шаги. Если вы создаете это для клиента, и они практические в отношении спецификации, используйте Cucumber для своего приемочного теста и используйте RSpec для модульных тестов.
Просто чтобы продемонстрировать основное различие между ними:
Огурец:
Rspec
Эта серия блогов отлично подходит для начала работы с RSpec.
источник