Что считается хорошей спецификацией? Примеры Rspec для начинающих

Что считается твердой спецификацией?

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

Спецификация модели должна (располагаться в порядке приоритета и релевантности):

  1. Протестировать все методы?
  2. Массив тестовых ошибок?
  3. Тестировать CRUD (и как )?
  4. Что еще?

Спецификация контроллера/представления должна (в порядке приоритета/актуальности):

  1. Заполните пропуск...
  2. ?

Было бы здорово расширить этот список того, что спецификация должна и не должна содержать.

Я также хотел бы составить список трюков и предложений. Например:

Ключевое слово "должен" лишнее.

Пример:

это:

it "should be invalid without a firstname"

было бы лучше, как:

it "is invalid without a firstname"

Еще один трюк: используйте expect вместо lambda для удобства чтения:

lambda {... }.should be_valid

более читабельно как:

expect {... }.should be_valid

Я составляю список полезных статей о том, как начать работу, и буду делиться ими в этом посте по мере их появления. Вот некоторые из них, которые я нахожу особенно полезными на данный момент. (Не стесняйтесь публиковать свои, и я добавлю их, если они покажутся полезными ).

http://everydayrails.com/2012/03/19/testing-series-rspec-models-factory-girl.html http://nelvindriz.tumblr.com/post/835494714/rspec-best-practices

Было бы здорово иметь список проектов, где тесты реализованы хорошо. Поскольку rspec настолько удобочитаем (, по крайней мере, так все говорят ), было бы здорово получить список ссылок на проекты с отличными спецификациями для чтения.

«См. спецификации Mongoid для примера хороших спецификаций». -@yfeldblum (см. ответ ниже)

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

Если вы проголосуете за то, чтобы закрыть это, это нормально, просто попробуйте оставить комментарий или предложение о том, где, по вашему мнению, этот пост должен быть. Спасибо!

20
задан botbot 9 August 2012 в 18:26
поделиться