Когда использовать огурец, а когда использовать RSpec? - PullRequest
7 голосов
/ 04 апреля 2011

Я новичок в тестировании Cucumber и пытаюсь понять, когда использовать Cucumber, а когда использовать RSpec. Я знаю, что для своих моделей я должен тестировать их с помощью RSpec, и я знаю, что мне не нужно писать спецификации запросов RSpec, если я пишу истории о Cucumber. То, что я не знаю, когда использовать то, что с представлениями и контроллерами. Должен ли я использовать RSpec для тестирования своих представлений и контроллеров, или я могу просто пропустить их, потому что я использую Cucumber для тестирования более высокого уровня? Любой совет будет принята с благодарностью! Спасибо!

Ответы [ 4 ]

5 голосов
/ 04 апреля 2011

Я использую RSpec для управления разработкой и тестированием моих моделей и в некоторой степени моих контроллеров, а Cucumber - для разработки и тестирования моих представлений (и впоследствии их интеграции с контроллерами).

Я не чувствую, что написание тестов Cucumber позволяет мне "пропустить" написание тестов RSpec, потому что большая часть разработки происходит на уровне модели до создания каких-либо представлений.

2 голосов
/ 19 апреля 2011

Если вы продолжите писать сценарии Cucumber вместо модульных тестов, то вы, вероятно, обнаружите, что ваши тесты становятся очень медленными для выполнения.Если тесты медленные, вы, вероятно, не будете их часто запускать, поэтому скорость разработки будет снижаться.

Вы можете использовать RSpec для интеграционных тестов, работающих на том же уровне, что и Cucumber.Если вам нужно поделиться и обсудить функции с не-разработчиками, то Cucumber будет огромной помощью.Но даже если вы являетесь индивидуальным разработчиком, Cucumber помогает, выступая в роли «ментальной защиты» между нужным вам поведением и базовой реализацией.

Стандартная практика, которой придерживается большинство людей, - это писать обширные модульные тестымодель, минимальные тесты для контроллера, и очень редко любые юнит-тесты для вида.Тогда вы бы использовали Cucumber, чтобы проверить, что все взаимодействует должным образом (убедитесь, что ваши сценарии охватывают все циклы / условия в контроллерах и представлениях).

1 голос
/ 08 мая 2016

Я не уверен, можно ли рекомендовать книгу здесь, но книга RSpec действительно дает хороший практический пример того, как Cucumber и RSpec могут чередоваться, чтобы стимулировать развитие небольшойигра для командной строки в Ruby.

В двух словах : написание ваших функций Cucumber с учетом точки зрения вашего конечного пользователя и ваших спецификаций RSpec с использованием вашей собственной точки зрения в качестверазработчик - это хороший баланс между скоростью выполнения набора тестов, гранулярностью тестирования (насколько точны сообщения об ошибках, когда ваши тесты проваливаются) и охватом документацией (функции Cucumber можно рассматривать как постоянно обновляемую документацию - собственная документация RSpec - отличный тому пример ).

0 голосов
/ 19 апреля 2011

Просто небольшое дополнение, которое может быть полезно для вас. Многие люди думают (и я тоже), что огурец - это больше хлопот, чем практическая тестовая среда для программиста. Пока вам не нужно сотрудничать, обсуждая сценарии с клиентами, которые мало знают о программировании, я настоятельно рекомендую вам не использовать огурец. Я с DHH на этот раз. Но RSpec, пользуйся и даже ругайся:)

...