Ruby on rails 为什么不是';t Rspec是否重新加载数据库表的内容?
集成规范包括:Ruby on rails 为什么不是';t Rspec是否重新加载数据库表的内容?,ruby-on-rails,rspec,Ruby On Rails,Rspec,集成规范包括: click_on "submit_order" order = Order.last binding.pry_remote 那么,为什么可能出现以下情况 我该如何修复它 From: /Users/steven/Dropbox/Testivate/spec/features/order_spec.rb @ line 44 : 43: order = Order.last => 44: binding.pry_remote [1] pry
click_on "submit_order"
order = Order.last
binding.pry_remote
那么,为什么可能出现以下情况
我该如何修复它
From: /Users/steven/Dropbox/Testivate/spec/features/order_spec.rb @ line 44 :
43: order = Order.last
=> 44: binding.pry_remote
[1] pry(#<RSpec::Core::ExampleGroup::Nested_1::Nested_1>)> order
=> nil
[2] pry(#<RSpec::Core::ExampleGroup::Nested_1::Nested_1>)> Order.last
+----+----------+----------+----------+----------+----------+---------+----------+----------+----------+----------+
| id | company | url | comp1 | comp2 | comp3 | user_id | guest... | guest... | creat... | updat... |
+----+----------+----------+----------+----------+----------+---------+----------+----------+----------+----------+
| 1 | The Nile | http:... | http:... | http:... | http:... | 1 | | | 2014-... | 2014-... |
+----+----------+----------+----------+----------+----------+---------+----------+----------+----------+----------+
1 row in set
没有变化
更新II
当您将集成规范更改为
click_on "submit_order"
save_and_open_page
order = Order.last
…订单表将正确重新加载,订单是最后一个订单
但是为什么呢
没有对订单或用户的回调。HTTP
POST
操作与数据库更新不同步,因此您的订单。最后一次方法调用可能在数据库写入完成之前完成。您可以通过等待提交已完成的肯定确认(例如重定向、快闪消息等)来“修复”此问题。谢谢。我通过将我的页面放在我的order=order.last
之前来修复它。这迫使规范等待。
click_on "submit_order"
save_and_open_page
order = Order.last