апреля 27, 2012 | Published in CMS, QuasarLog
Весточка с передовой.
О QuasarLog’е
В этой рубрике я буду писать о прогрессе в разработке Quasar и некоторых интересных вещах, которые вот уже реально могут быть полезны читателям RubyDev. Например в этом посте мы рассмотрим код FactoryGirl фабрики для модели User из Quasar. Об этом я уже писал в нашей группе во вконтакте. Если хотите быть в курсе развития проекта и RubyDev, то вот вам:
Read the rest of this entry »
апреля 21, 2012 | Published in BDD, Development Processes, RSpec, Ruby, Ruby on Rails, Ruby on Rails 3, Базы данных, Основы, Тестирование
В этой статье мы рассмотрим:
- Установку Git
- Установку RVM - Ruby Version Manager для возможности работы с несколькими версиями Ruby, а также наборами библиотек Ruby - Gem’ами.
- Установку собственно Ruby: Ruby 1.8.7 и Ruby 1.9.3
- Установку SQLite, MySQL, PostgreSQL
- Установку фреймворка Ruby on Rails 3.2 и его зависимостей
- Установку Node.js как среду выполнения JavaScript
- Создание нового проекта Rails
- Работу с зависимостями проекта
- Настройку тестового окружения и написание простых спецификаций и тестов
- Написание кода приложения по спецификациям
- Установку Nginx и Unicorn, и запуск приложения Rails на Unicorn и Nginx прокси
- Работу с удаленным репозиторием
- Работу с Continuous Integration (CI) сервером - Travis
Read the rest of this entry »
февраля 17, 2012 | Published in BDD, Development Processes, RSpec, Тестирование
Когда вы запускаете тесты для вашего приложения, то сами тесты выполняются достаточно быстро, а значительное время забирает запуск вашего приложения на Rails для тестирования. Каждый раз выполняя тесты все заново запускаете свое приложение.
Для решения этой проблемы было предложено решение, которое называется Spork. Spork является DRb сервисом (сервером), суть которого заключается в том, что он держит приложение постоянно загруженным, так что вам не нужно его запускать каждый раз вместе с запуском тестов.
В данной статье мы рассмотрим работу Spork совместно с RSpec для Rails 3.2. Мы будем использовать RSpec потому, что он имеет встроенную поддержку DRb сервисов и является одним из самых популярных решений для тестирования и написания спецификаций.
Read the rest of this entry »
сентября 18, 2011 | Published in BDD, RSpec, Тестирование
UPD: Добавлен параграф об around() хуке.
Доброго времени суток ув. читатель RubyDev’а!
В данный момент автор RubyDev, то есть я, очень похож на белку в колесе ибо он занимается устройством на работу. К сожалению или к великому счастью обязательным условием является умение работать с RSpec, которым автор владеет в совершенстве плохо, по сему, решил я бросить все ресурсы на то, чтобы изучить сие твоение Девида Челимски.
Данную статья пишу я не от того, что вдруг появилось свободное время, но потому, что это единственный способ для меня самого хорошо освоить материал, текст статьи я как-бы пишу сам для себя, объясняя себе то, что только что прочитал в том малом, что мне удалось, словно золото из золотой жилы, выбить да вышкребать, в интернетах.
Ибо время — деньги, а платить мне никто за это старание не будет, буду совсем краток.
Read the rest of this entry »
марта 19, 2011 | Published in Ruby on Rails, Ruby on Rails 3
В прошлой главе мы занимались тем, что создавали себе рабочую среду и создали свое первое приложение на Rails 3. В этой главе RubyDev Rails 3 Tutorial вы еще ближе познакомитесь со структурой приложения Rails, с Git и Bundler, а также создадите свою первую модель и контроллер и узнаете о том, что такое BDD и RSpec.
Прежде чем начать, давайте разберемся с некоторой терминологией: фреймворк Rails построен на основе нескольких принципах, которые очень важно знать любому программисту!
CoC (Convention over Configuration — Соглашение прежде конфигурации) — согласно этому принципу Rails содержит набор соглашений касательно структуры проекта, именования файлов и директорий, а также классов, модулей и так далее. Благодаря этому приложение на Rails избавляется от лишней настройки приложения, чем гораздо ускоряет разработку. Этот принцип вовсе не значит, что приложение на Rails не настраиваемо, Rails как раз таки один из самых гибких фреймворков для веб разработки. Этот принцип означает лишь, то, что мы избегаем лишней конфигурации и приближаемся к стандартизации.
Read the rest of this entry »
февраля 6, 2011 | Published in BDD, Тестирование
Требования:
Ruby >= 1.8.6
Rubygems >= 1.3.7
Установка RSpec
Для установки RSpec воспользуйтесь следующей консольной командой:
$ gem install rspec
Благодаря этой команде Rubygems установит следующие gem’ы:
rspec
rspec-core
rspec-expectations
rspec-mocks
Gem rspec-core устанавливает консольную команду rspec. Запустите команду rspec с параметром —help чтобы увидеть доступные опции:
$ rspec —help
С места в карьер!
Напишем простой пример, который описывает желаемое поведение программы:
# bowling_spec.rb
describe Bowling do
describe "#score" do
it "returns 0 for all gutter game" do
bowling = Bowling.new
20.times { bowling.hit(0) }
bowling.score.should == 0
end
end
end
Read the rest of this entry »
января 23, 2011 | Published in BDD, Тестирование
Внимание: Это первый мой перевод посвященный теме тестирования и я только становлюсь на стезю изучения данной темы, поэтому перевод может быть несколько неадекватен. Я очень прошу извенить меня за неточности и незнание устоявшейся русскоязычной терминологии касательно тестирования и работы с RSpec в частности. Я также прошу поправлять меня в комментариях, я буду очень благодарен более опытным программистам читающим мой блог за помощь.
RSpec один из моих любимых инструментов. Я без преувеличений влюбился в эту фантастическую библиотеку для BDD тестирования, особенно во вторую версию. Используя RSpec, я понял, что эта библиотека учит меня тому, как правильно писать тесты. Изучая RSpec DSL , его синтаксис и структуру примеров spec’ов (далее по тексту просто спеки) вы фактически изучаете лучшую методику написания тестов. RSpec, несмотря на множество встроенных условий проверки, содержит еще и DSL для объявления ваших собственных проверок, которые заточены по ваши личные, специфичные нужды. Возможно все это звучит несколько запутывающе, однако все достаточно просто, так просто, что в это сложно поверить, пока сам не попробуешь.
Основы
В RSpec проверки (matchers) ничто иное как методы доступные в контексте примера. Вы используете их, чтобы убедиться в том, что результат работы тестируемого кода соответствует переданому ожиданию (проверке, условию при котором тест возвратит значение true, что свидетельствует, что данная проверка пройдена успешно и код работает так, как мы того ожидали). Существует множество проверок, которые уже входят в состав RSpec. В примере ниже показано использование одной из таких проверок respond_to:
describe String do
it { should respond_to(:gsub) }
end
Read the rest of this entry »