При тестировании с помощью rspec, где разместить общие «методы тестирования»?

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

Я хотел бы написать тест rspec в соответствии со строками

it "always displays the correct number still available" do

   # Assume there is a before method that sets up a widget with 5 available

   widget.number_still_available.should == 5

   # User "a@b.com" purchases 2 widgets
   widget.number_still_available.should == 3

   # User "c@d.com" purchases 1 widget
   widget.number_still_available.shhould == 2

   # User "a@b.com" cancels purchase of 1 widget
   widget.number_still_available.should == 4
end

. Я хотел бы иметь возможность писать методы только для тестирования, которые выполняют методы «покупки» и «отмены». Эти действия не соответствуют никаким «реальным» методам в моих моделях по ряду причин (наиболее важно то, что в PHP есть отделенная серверная система, которая выполняет часть действий покупки и отмены).

Где правильно разместить этот код при использовании RSpec? В огурце я мог бы написать пару шагов, но я не уверен, какой эквивалент для RSpec.

24
задан cailinanne 14 November 2011 в 19:13
поделиться