Ruby on rails 4 Capybara webkit AJAX请求中未找到RecordNotFound
我有一个表格可以创建一个新的Ruby on rails 4 Capybara webkit AJAX请求中未找到RecordNotFound,ruby-on-rails-4,selenium,rspec,capybara,capybara-webkit,Ruby On Rails 4,Selenium,Rspec,Capybara,Capybara Webkit,我有一个表格可以创建一个新的地址。该表单包括拥有地址的父模型(在本例中为客户)的id。提交表单时,AJAX请求会转到AddressesController,由JavaScript响应。问题是,有时找到父模型,有时找不到 这在RSpec中起作用: before do click_link add_address fill_in country_field, with: country fill_in city_field, with: city fill_in st
地址
。该表单包括拥有地址的父模型(在本例中为客户
)的id。提交表单时,AJAX请求会转到AddressesController
,由JavaScript响应。问题是,有时找到父模型,有时找不到
这在RSpec中起作用:
before do
click_link add_address
fill_in country_field, with: country
fill_in city_field, with: city
fill_in street_field, with: street
fill_in postal_code_field, with: postal_code
click_button submit_address
expect(page.title).to eq(show_page_title)
end
it { is_expected.to have_content(address_created) }
但是,当我将expect(page.title.)从before语句移动到自己的测试(当然更好)时:
我得到以下错误:
ActiveRecord::RecordNotFound:
Couldn't find Customer with 'id'=1
如果我在before语句以及接收请求的地址控制器中添加puts Customer.count
last,我从before语句中的行中得到1,但从控制器中得到0!这是怎么可能的?它解决了这个问题,不过我需要做更多的测试才能确定。我现在可以确认上面的解决方案解决了我的问题。我不知道为什么,因为Customer
应该在运行测试之前创建,因为我使用let创建它!(:customer){FactoryGirl.create(:customer)}
语句。它解决了这个问题,不过我需要做更多的测试才能确定。我现在可以确认上面的解决方案解决了我的问题。我不知道为什么,因为Customer
应该在运行测试之前创建,因为我使用let创建它!(:customer){FactoryGirl.create(:customer)}
语句。
ActiveRecord::RecordNotFound:
Couldn't find Customer with 'id'=1