Что считается твердой спецификацией?
Это то, что я считаю очень абстрактным о тестировании. Меня бы интересовал ответ на это на моделях, контроллерах и на все, что можно проверить. Было бы здорово иметь спецификацию для спецификации, вы знаете, что я имею в виду?
Спецификация модели должна (в порядке приоритета и релевантности):
- Проверить все методы?
- Проверить массив ошибок?
- Проверить CRUD (и как)?
- Что еще?
Спецификация контроллера/представления должна (в порядке приоритета/релевантности):
- Заполните пробел...
Было бы здорово расширить этот список того, что спецификация должна и не должна содержать.
Я также хотел бы составить список трюков и предложений. Например:
Ключевое слово "should" является избыточным.
Пример:
it "should be invalid without a firstname"
будет лучше:
it "is invalid without a firstname"
Еще один трюк, используйте ожидание вместо лямбда для удобочитаемости:
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, по моему мнению. Я сделал бы это сам, но я еще не совсем там.
Если вы голосуете, чтобы закрыть это, это прекрасно, просто попробуйте оставить комментарий или предложение о том, где вы думаете, что этот пост будет принадлежать. Спасибо!