Введення в тестування з Ruby on Rails та RSpec

текст перекладу
pic

Тестування є важливою частиною розробки програмного забезпечення, яке забезпечує правильність поведінки вашого додатку та знижує ймовірність появи помилок. У Ruby on Rails популярним фреймворком для тестування є RSpec, який пропонує простий та виразний синтаксис для написання тестів.

Цей посібник ознайомить вас з основами тестування в Ruby on Rails за допомогою RSpec, що ідеально підходить для початківців.

Налаштування RSpec у вашому Rails проекті

Перш ніж почати писати тести з RSpec, вам потрібно додати його до вашого Rails проекту. Ось як це налаштувати:

  1. Додайте RSpec до вашого Gemfile:
group :development, :test do  
 gem 'rspec-rails', '~> 5.0.0'  
end
  1. Виконайте команду bundle install, щоб встановити гем.

  2. Ініціалізуйте RSpec у вашому проекті:

rails generate rspec:install

Ця команда створить необхідні конфігураційні файли для RSpec.

Написання першого тесту

Давайте почнемо з написання простого тесту для моделі у вашому Rails додатку. Припустимо, у вас є модель Post з полями title та content.

  1. Створіть модель, якщо ви цього ще не зробили:
rails generate model Post title:string content:text  
rake db:migrate
  1. Створіть новий файл для тестів моделі Post у директорії spec/models/post_spec.rb і додайте наступний вміст:
require 'rails_helper'  

RSpec.describe Post, type: :model do  
 context 'validations' do  
 it 'ensures the presence of a title' do  
 post = Post.new(content: 'This is a test post')  
 expect(post.valid?).to be_falsey  
 expect(post.errors[:title]).to include("can't be blank")  
 end  

 it 'ensures the presence of content' do  
 post = Post.new(title: 'Test Post')  
 expect(post.valid?).to be_falsey  
 expect(post.errors[:content]).to include("can't be blank")  
 end  
 end  
end

Тут ми тестуємо, що у моделі Post повинні бути обов'язково присутні поля title та content. Якщо одне з них відсутнє, модель повинна бути невалідною.

Запуск тестів

Щоб запустити ваші тести, використовуйте наступну команду:

bundle exec rspec

RSpec виконає всі тести в директорії spec і виведе результати.

Висновок

Вітаємо! Ви щойно написали та виконали свої перші тести за допомогою RSpec у Rails додатку. Це лише початок; RSpec пропонує безліч можливостей для написання більш комплексних тестів для ваших моделей, контролерів, представлень та інших компонентів.

Продовжуючи навчання, ви дізнаєтесь більше про стратегії тестування, такі як тестування асоціацій, власних методів та інтеграцій. Успіхів у тестуванні!

Перекладено з: Introduction to Testing with Ruby on Rails and RSpec

Leave a Reply

Your email address will not be published. Required fields are marked *