为什么Rspec没有重新加载我的数据库表的内容?

时间:2014-03-19 00:46:48

标签: 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(#<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

更新

我试过了:

Order.connection.reconnect!

没有变化。

更新II

将集成规范更改为读取...

click_on "submit_order"
save_and_open_page
order = Order.last

...订单表正确重新加载,订单是最后一个订单。

但为什么?

订单或用户没有回调。

1 个答案:

答案 0 :(得分:0)

HTTP POST操作与数据库更新不同步,因此在数据库写入完成之前,您的Order.last方法调用可能已完成。你会&#34;修复&#34;这是通过等待一些肯定的确认提交已完成(例如重定向,flash消息等)。