Ich versuche, eine "Post create" Aktion mit Rspec zu testen. Der Code lautet wie folgt:Testen "Post create" mit 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
Einer der erforderlichen Attribute für das Formular ist eine ‚Zone‘, das ist eine Drop-Down-Box und die Optionen für den Drop-Down mit einer anderen Form erstellt. Ich weiß nicht, wie man mit Rspec einen Formulareintrag erstellt. Wie Sie sehen können, habe ich versucht, eine Methode von einem anderen Controller Flymgr::Zone.new
aufzurufen. Ich glaube nicht, dass das funktioniert und es bricht meinen Test.
Kann jemand über den besten Weg beraten, dies zu tun? Vielleicht sollte ich FactoryGirl verwenden, um einen Zonen- und Regeleintrag zu erstellen?