Начало работы с модульным тестированием с Rspec на Ruby с Rails
3 мая 2023 г.Модульное тестирование является важной частью процесса разработки программного обеспечения, поскольку оно помогает гарантировать качество и надежность кода. Хорошо известная среда веб-приложений ruby on rails предлагает отличную среду тестирования под названием RSpec, которая упрощает создание и запуск модульных тестов. В этой статье мы рассмотрим процессы настройки модульного тестирования в Ruby on Rails с использованием RSpec.
- Установка RSpec
Первым шагом для начала работы с Rspec является установка гем Rspec. Для этого добавьте следующую строку в свой Gemfile.
группа :development, :test do
жемчужина «rspec-rails»
конец
Теперь в командной строке запустите bundle install
, чтобы установить гем.
Затем создайте файлы конфигурации Rspec, выполнив следующую команду:
rails генерирует rspec:install
После запуска команды в корне вашего приложения будет создан каталог «spec» вместе с некоторыми файлами конфигурации по умолчанию.
- Написание первого теста
После установки Rspec в наше приложение мы готовы приступить к написанию первого модульного теста. Предположим, у вас есть модель с именем «Link» в приложении rails, которую вам нужно протестировать. Первым шагом является создание тестового файла для модели. Для этого выполните следующую команду.
rails g rspec:model Ссылка
Он создаст папку «модель» внутри каталога спецификации. Внутри папки будет файл с именем «link_spec.rb». Теперь, когда мы создали наш первый тестовый файл, давайте посмотрим, что внутри этого файла.
требовать 'rails_helper'
Ссылка на RSpec.describe, введите: :model do
ожидание "добавить несколько примеров в (или удалить) #{FILE}"
конец
В этом файле метод описания представляет класс или модуль, который вы хотите протестировать. Внутри метода вы можете написать отдельные тестовые примеры, используя метод it, за которым следует описание того, что вы тестируете.
Давайте напишем тест, чтобы проверить, правильно ли создается и возвращается ссылка.
требовать 'rails_helper'
RSpec.describe Ссылка, тип: :model do description 'create' do 'успешно создает новую ссылку' do link = Link.new(title: 'Тестовая ссылка', url: 'www.testlink. com') expect(link.save).to be_truthy end end end
В этом тесте мы создали новый объект «Ссылка» с заголовком «Тестовая ссылка» и URL-адресом «www.testlink.com». Затем мы используем метод expect, чтобы определить ожидание того, вернет ли он истину или нет после сохранения ссылки. Метод «to be_truthy» используется для проверки того, соответствует ли истинный результат ожидаемому результату.
3. Запустите тесты
После того как мы написали тест, пришло время его запустить. Тест можно запустить, написав в командной строке приведенную ниже команду.
rspec spec/models/link_spec.rb
Это выполнит тест в файле link_spec.rb
и отобразит результаты в вашем терминале. Если тест пройден, вы должны увидеть зеленый вывод, указывающий, что ваш код работает должным образом. Если какой-либо тест не пройден, вы увидите красный вывод, указывающий на наличие проблем с вашим кодом, которые необходимо устранить.
- Написание дополнительных тестов
Вы можете продолжать писать больше тестов для своих моделей, контроллеров, представлений и других частей вашего приложения Rails, используя RSpec. RSpec предоставляет богатый набор сопоставителей и утверждений, которые можно использовать для тестирования различных аспектов кода, таких как проверка ожидаемого поведения, обработка пограничных случаев и проверка ввода/вывода. Например, вы можете написать тесты, чтобы проверить, является ли ссылка действительной или нет, аутентифицируется ли пользователь после ее подписания, перенаправляет ли действие контроллера на правильную страницу и т. д.
Приведенная выше статья дает вам общее представление о том, как мы можем настроить Rspec для тестирования нашего приложения и добавить тест в соответствии с требованиями.
Оригинал