Testen von "Post Create" mit Rspec

Ich versuche, eine Aktion "Post erstellen" mit Rspec zu testen. Der Code lautet wie folgt:

<code>   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
</code>

Eines der erforderlichen Attribute für das Formular ist eine 'Zone'. Dies ist ein Dropdown-Feld, und die Optionen für das Dropdown werden mit einem anderen Formular erstellt. Ich kann keinen Formulareintrag mit Rspec erstellen. Wie Sie sehen, habe ich versucht, eine Methode von einem anderen Controller aufzurufenFlymgr::Zone.new. Ich glaube nicht, dass das funktioniert und es meinen Test bricht.

Kann jemand einen Rat geben, wie man das am besten macht? Vielleicht sollte ich FactoryGirl verwenden, um einen Zonen- und Regeleintrag zu erstellen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage