【发布时间】:2012-05-11 11:46:18
【问题描述】:
我正在尝试使用 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 来创建区域和规则条目?
【问题讨论】:
标签: ruby-on-rails testing rspec factory-bot rspec-rails