Тестирование «Post create» с помощью Rspec

Я пытаюсь протестировать действие «Post create» с Rspec.Код выглядит следующим образом:

   def valid_attributes
     {
    :zone => Flymgr::Zone.new(:countries => Flymgr::ZoneCountry.first,
        :name => 'USA',
        :description => 'USA Flight',
        :zipcodes => ''),
    :price => '100.00',
    :class => 'first',

     }
   end

   def valid_session
     {}
   end

   before(:each) do
       @request.env["devise.mapping"] = Devise.mappings[:admin]
       admin = FactoryGirl.create(:admin)
       sign_in admin                           
      end

describe "POST create" do
     describe "with valid params" do
       it "creates a new Flymgr::Rule" do
         expect {
           post :create, {:Flymgr_rule => valid_attributes}
         }.to change(Flymgr::Rule, :count).by(1)
       end

Один из обязательных атрибутов для формы это 'зона', это выпадающий список и опции для выпадающего списка создаются с другой формой. Я не знаю как создать запись формы с использованием Rspec. Как видите, я пытался вызвать метод из другого контроллера Flymgr::Zone.new. Я не думаю, что это работает, и это нарушает мой тест.

Может ли кто-нибудь посоветовать, как лучше всего это сделать?Может быть, мне следует использовать FactoryGirl для создания зоны и записи правила?

6
задан user1152142 11 May 2012 в 11:46
поделиться