- Когда я еще был рубистом и упарывался на написание тестов, то для своего гема у меня была какая-то дикая матрица тестирования, не только под версию руби, но даже под операционку. Вот тот самый конфиг для матрицы.
https://github.com/TheRole/DummyApp/blob/master/.travis.yml
- Для того, чтобы подключать разные версии зависимостей в Gemfile приложения, которое ты тестируешь вообще была (и есть) такая штука
https://github.com/thoughtbot/appraisal#readme
Но я решил не заморачиваться на нее.
- Для разных версий рельса и версий руби в Гемфайл я пихал такое
https://github.com/TheRole/DummyApp/blob/master/Gemfile
И имел еще ряд подключаемых гемфайлов, в зависимости от переданных параметров
https://github.com/TheRole/DummyApp/tree/master/gemfiles
- Строго говоря, разные версии зависимостей могут вполне потребовать условных конструкций в коде и специфических правок. Например вот тут.
https://github.com/TheRole/DummyApp/blob/master/app/controllers/application_controller.rb#L3
Вообще у меня были случаи, когда некоторые методы руби были не доступны в старых версиях и мне приходилось патчить код и добавлять эти методы самому.
- При написании спеков ты можешь свободно использовать фильтры для конкретных версий чего угодно. Или дажи написать свои кастомные фильтры, которые будут запускать тесты для одних случаев и не запускать для других rspec/rspec-core#1484
by Ilya Nikolaevich