Rspecで「投稿作成」アクションをテストしようとしています。コードは以下の通りである:フォームのための必要な属性の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を使ってゾーンとルールエントリを作成する必要がありますか?