текст перекладу
Тестування є важливою частиною розробки програмного забезпечення, яке забезпечує правильність поведінки вашого додатку та знижує ймовірність появи помилок. У Ruby on Rails популярним фреймворком для тестування є RSpec, який пропонує простий та виразний синтаксис для написання тестів.
Цей посібник ознайомить вас з основами тестування в Ruby on Rails за допомогою RSpec, що ідеально підходить для початківців.
Налаштування RSpec у вашому Rails проекті
Перш ніж почати писати тести з RSpec, вам потрібно додати його до вашого Rails проекту. Ось як це налаштувати:
- Додайте RSpec до вашого
Gemfile
:
group :development, :test do
gem 'rspec-rails', '~> 5.0.0'
end
-
Виконайте команду
bundle install
, щоб встановити гем. -
Ініціалізуйте RSpec у вашому проекті:
rails generate rspec:install
Ця команда створить необхідні конфігураційні файли для RSpec.
Написання першого тесту
Давайте почнемо з написання простого тесту для моделі у вашому Rails додатку. Припустимо, у вас є модель Post
з полями title
та content
.
- Створіть модель, якщо ви цього ще не зробили:
rails generate model Post title:string content:text
rake db:migrate
- Створіть новий файл для тестів моделі
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