Танилцуулга

Хамгийн хэрэгтэй гэсэн Development - gem - үүдээс эхнээс нь танилцаж явах болно. Мэдээж бид бүхэнд юуны ѳмнѳ rspec-rails gem хэрэгтэй. Rspec нь тест хийх зориулалттай framework ба олон талт боломжуудтай юм.

Dev Gems

group :development, :test do
   gem 'better_errors'
   gem 'capybara-webkit'
   gem 'factory_girl_rails'
   gem 'ffaker'
   gem 'database_cleaner'
   gem 'letter_opener'
   gem 'rspec-rails' 
   gem 'pry'
   gem 'pry-nav'
   gem 'pry-rails', '~> 0.3.2'
   gem 'simple_bdd'
   gem 'shoulda-matchers'
   gem 'spring'
 end

Дээр байгаа нийт 13 Development, test - gem - үүдийг нэг нэгээр нь дэлгэрэнгүй үзэх болно. Энэ удаа бид gem ‘rspec-rails’ дэлгэрэнгүй авч үзнэ. Rspec - ыг ажиллуулах үед capybara-webkit суулгахыг шаардана. Capybara-webkit-ыг суулгахын ѳмнѳ Qt libraries суулгасан байх шаардлагатай. Энд дарж суулгах заавартай танилцаарай.

rspec-rails

rspec-rails нь Rails 3.x 4.x зориулсан testing framework юм. Gemfile - ын group :development, :test do - дотор бичиж ѳгнѳ:

group :development, :test do
   gem 'rspec-rails'
   gem 'capybara-webkit'
end

Дараагаар нь терминал дээр:

{% codeblock %} $ bundle install {% endcodeblock %}

Bundle install хийгдэж дууссан бол, rspec - ээ суулгана. Терминал дээр:

{% codeblock %} $ rails generate rspec:install {% endcodeblock %}

/spec/rails_helper.rb замаар орон require ‘rspec/rails’ - ыг нэмнэ:

require 'rspec/rails'

Home Spec

/spec - фолдер дотор features - фолдер шинээр үүсгэнэ. Энэ фолдер дотор бид spec-үүдээ бичээд явах юм.

{% codeblock %} $ cd spec $ mkdir features {% endcodeblock %}

Шинээр үүсгэсэн features - фолдер дотроо home_spec.rb - үүсгэж ѳгнѳ:

{% codeblock %} $ vi /spec/features/home_spec.rb {% endcodeblock %}

Энэ хичээлийн явцад [Vim](https://en.wikipedia.org/wiki/Vim_(text_editor) ашиглах ба та ѳѳрийн дурын editor-ыг ашиглах боломжтой.

require 'rails_helper'
 
feature "Home page уруу орох" do
 
  scenario "Хэрэглэгч, тавтай морилно уу гэсэн текст харах" do
    visit root_path
    expect(page).to have_text("Тавтай морилно уу CaDiL")
  end
end

Spec - ыг ажиллуулах

Бүх spec - ыг ажлуулах:

{% codeblock %} $ rspec {% endcodeblock %}

Фолдер дотор байгаа spec-үүдыг ажлуулах:

{% codeblock %} $ rspec spec/features {% endcodeblock %}

Нэг spec ажлуулах:

{% codeblock %} $ rspec spec/features/home_spec.rb {% endcodeblock %}

Spec-ын дагуу

rspec ажиллуулж үзэн гарсан алдааны мэдээллээр алдааг засаж үзье.

Home controller - ыг index method - той хамт үүсгэх:

{% codeblock %} $ rails g controller Home index {% endcodeblock %}

Home index - ыг үндсэн хуудсаар сонгож ѳгѳхын тулд app/config/routes.rb - уруу орон:

root 'home#index'

бичиж ѳгнѳ.

Шинээр үүсгэсэн Home index үрүү орон доорх мѳрийг бичиж ѳгнѳ:

<p>Тавтай морилно уу CaDiL</p>