Учебники

RSpec — Введение

RSpec — это модуль модульного тестирования для языка программирования Ruby. RSpec отличается от традиционных платформ xUnit, таких как JUnit, потому что RSpec — это инструмент разработки, управляемый поведением. Это означает, что тесты, написанные на RSpec, фокусируются на «поведении» тестируемого приложения. RSpec делает упор не на том, как работает приложение, а на том, как оно ведет себя, другими словами, на самом деле, что делает приложение.

RSpec Environment

Прежде всего, вам нужно будет установить Ruby на ваш компьютер. Однако, если вы еще этого не сделали ранее, вы можете скачать и установить Ruby с главного сайта RubyRuby .

Если вы устанавливаете Ruby в Windows, у вас должен быть установщик Ruby для Windows здесь — http://www.rubyinstaller.org

Для этого урока вам понадобится только текстовый редактор, например Блокнот и консоль командной строки. Примеры здесь будут использовать cmd.exe на Windows.

Чтобы запустить cmd.exe, просто нажмите в меню «Пуск» и введите «cmd.exe», а затем нажмите клавишу «Return».

В командной строке в окне cmd.exe введите следующую команду, чтобы увидеть, какую версию Ruby вы используете:

ruby -v

Вы должны увидеть следующий вывод, который выглядит примерно так:

ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]

Примеры в этом руководстве будут использовать Ruby 2.2.3, но подойдет любая версия Ruby выше 2.0.0. Далее нам нужно установить гем RSpec для вашей установки Ruby. Gem — это библиотека Ruby, которую вы можете использовать в своем собственном коде. Чтобы установить драгоценный камень, вам нужно использовать команду драгоценного камня .

Давайте сейчас установим гем Rspec. Вернитесь в окно cmd.exe и введите следующее —

gem install rspec

У вас должен быть список установленных драгоценных камней, это камни, которые нужны для правильной работы rspec. В конце вывода вы должны увидеть что-то похожее на это —

Done installing documentation for diff-lcs, rspec-support, rspec-mocks,
   rspec-expectations, rspec-core, rspec after 22 seconds 
6 gems installed

Не волнуйтесь, если ваш вывод не выглядит точно так же. Кроме того, если вы используете компьютер Mac или Linux, вам может потребоваться выполнить команду gem install rspec с помощью sudo или использовать такой инструмент, как HomeBrew или RVM, чтобы установить гем rspec.

Hello World

Для начала давайте создадим каталог (папку) для хранения наших файлов RSpec. В окне cmd.exe введите следующее —

cd \

Затем введите —

mkdir rspec_tutorial

И наконец, введите —

cd rspec_tutorial

Отсюда мы собираемся создать еще один каталог с именем spec, сделав это, набрав —

mkdir spec

Мы собираемся хранить наши файлы RSpec в этой папке. Файлы RSpec известны как «спецификации». Если вас это смущает, вы можете рассматривать файл спецификации как тестовый файл. RSpec использует термин «spec», который является краткой формой для «спецификации».

Поскольку RSpec — это инструмент тестирования BDD, цель состоит в том, чтобы сосредоточиться на том, что делает приложение, и соответствует ли оно спецификации. При разработке, основанной на поведении, спецификация часто описывается в терминах «пользовательской истории». RSpec разработан, чтобы прояснить, правильно ли работает целевой код, другими словами, следуя спецификации.

Вернемся к нашему коду Hello World. Откройте текстовый редактор и добавьте следующий код —

class HelloWorld

   def say_hello 
      "Hello World!"
   end
   
end

describe HelloWorld do 
   context When testing the HelloWorld class do 
      
      it "should say 'Hello World' when we call the say_hello method" do 
         hw = HelloWorld.new 
         message = hw.say_hello 
         expect(message).to eq "Hello World!"
      end
      
   end
end

Затем сохраните его в файл с именем hello_world_spec.rb в папке spec, которую вы создали выше. Теперь вернитесь в окно cmd.exe и выполните эту команду:

rspec spec spec\hello_world_spec.rb

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

Finished in 0.002 seconds (files took 0.11101 seconds to load) 
1 example, 0 failures

Поздравляем, вы только что создали и запустили свой первый модульный тест RSpec!

В следующем разделе мы продолжим обсуждение синтаксиса файлов RSpec.