2016-02-12 4 views
-3

У меня есть рубиновый код моей команды, теперь мне нужно выполнить модульное тестирование по спецификациям с помощью rspec. Я прошел через несколько веб-сайтов, но не получил идеального снимка о том, как его использовать. Может кто-нибудь, пожалуйста, помогите мне с шагами по использованию rspec. А также как создать пользователя в test db. Пожалуйста, направляйте меня, я новичок в rspec.Каковы предварительные требования, которые мне нужны для запуска rspec для рельсов?

+0

Есть книги о том, как использовать rspec. Это слишком широкий вопрос для этого сайта. Еще один момент - сначала вы должны написать свои тесты, а затем написать код, чтобы удовлетворить их. – BroiSatse

ответ

1

Хорошее руководство по настройке RSpec получено из readme на rspec repo page on GitHub..

Однако ... Лично ниже это сочетание я в основном использую:

  1. Database cleaner: Для очистки дб, как следует из названия. Хорошим руководством по настройке этого является Avdi on his blog here.

Примечание: В этом блоге рекомендуется установить конфигурацию очистителя базы данных в отдельный файл в каталоге поддержки. Если это будет сделано, не забудьте раскомментировать следующую строку внутри файла rails_helper.rb

# Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } 

Это гарантирует, что все файлы в каталоге поддержки необходимы в тестовом костюме.

  1. FactoryGirls: Это для создания тестовых записей (пользователей и т. Д.) Так же, как вы задаете в вопросе. Достаточно хорошее руководство, как указано на getting started document here.
  2. Faker: Я использую это для генерации Fake случайных значений при создании моих записей. Например: first_name, last_name, адрес электронной почты, пароль и т. Д. Для тестового пользователя вместо жесткого кодирования этих значений. Используя это, как указано на readme в репо

Правильно вооруженный вышеуказанным, первые спецификации Rspec готовы к записи.

функция может быть в основном разделена на два этапа:

  • Описание
  • Ожидания

описание представляет собой краткое изложение того, что костюм тестирования для в то время как ожидание является нормальным ожидаемым результатом ,

Описания также могут быть вложены в другие описания.

Пример испытания RSpec является:

require 'rails_helper' 

describe TextMessage do 
    describe "#failed?" do 
    it "returns true" do 
     text = FactoryGirl.create(:text_message, :not_delivered) 
     expect(text.send(:failed?)).to be_truthy 
    end 
    end 
end 

Во-первых, требуется файл rails_helper. Здесь находится вся тестовая конфигурация. Этот файл автоматически генерируется, когда команда rails generate rspec:install запускается из руководства по установке Rspec в своем репо.

Далее, у меня есть блок описания describe TextMessage do;end Это описывающий мою модель, которая TextMessage в этом случае

Далее я другое описание блок вложен в первый, чтобы описать метод (не удалось?) В моем Отпраке модели: describe "#failed?" do;end

Тогда у меня есть блок ожидания, которое мое главное испытание:

it "returns true" do 
    text = FactoryGirl.create(:text_message, :not_delivered) 
    expect(text.send(:failed?)).to be_truthy 
end 

Все другие испытания для метода failed? будут под этим, с их соответствующими блоками ... в то время как другие тесты для других методов в модели будут соответственно первыми.

Надеюсь, что я смог пролить свет на этот вопрос для вас здесь.

Смежные вопросы