Утро доброе. Я новичок в рельсах, да и в вебе в целом, где-то год занимаюсь сие ремеслом из интереса, вдоволь наигравшись с вёрсткой и jquery-плагинами, решил всё-таки за что-нибудь более серьёзное взяться, вот и начал изучать рельсы.
И... Всё хорошо, мануалов и туториалов более чем достаточно, книги к тому же чудесные. Но я пока просто застрял на тестировании, а точнее bdd. Просто не представляю как и что именно писать в тесты, некоторые книги читал, презентации смотрел, но там описывается чаще всего сам функционал сие юнит-тестового фреймворка, как и что писать, более тактичное называние блоков describe/context/it. Книги гуглил, но нашёл лишь 1 более-менее по душе, да и то она 2010 года. Так что... Вся проблема в том, что просто не представляю что и как описывать, очевидно что в отдельных спеках отдельные куски кода (фьючи, модели, вью, контроллеры), но как именно, чтобы тест был полноценный, а не парочку незамысловатых строк про пустое поле, либо же редирект, если пользователь не имеет прав/не залогинен.
Опять же, прошу прощения за столь дилетанский вопрос. Но... Где можно узнать это, и... Если есть свои мысли/советы, буду рад их услышать.
Все, что написано ниже - сугубо субъективно и за чистую и единственную истину ни в коем случае воспринимать все не нужно.
1. Что тестировать?
Вопрос очень холиварный. Правда. Лично я делаю в бОльшем кол-ве integration tests, т.е. тестируется то, что видит пользователь. к тестам API это конечно не относится. Но так же тестирую более-менее сложные actions в контроллере. Так же я не тестирую простые валидации. Вывод: Для начала лучше тестировать каждый байт трафика между пользователем и сервером. Просто что-бы привыкнуть к тестам. Что-бы написать тест занимало меньше времени, чем любой, самый простой кусок кода в приложении.
2. Название блоков.
Скажу двумя словами от себя и вот ресурс. Там где-то в начале об этом вроде говорится.
От себя - пишите названия так, что-бы при команде