我正在嘗試使用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來創建區域和規則條目?