0

这里有两个问题:

我有这段代码要发布在用户的 Facebook 墙上:

def publish_on_facebook
    if user.last_published < 1.day.ago
        @graph = Koala::Facebook::API.new(user.service.token)
        begin
            @graph.put_wall_post("some post")
            user.last_published = Time.now
            user.save
        rescue
            user.last_published = 1.week.from_now
            user.save
        end
    end
end

它完美地工作:

如果用户已授权我,它会发布并更新 last_published(日期时间类型)字段到现在。

如果用户没有授权我在他的墙上发布东西,那么它会将 last_published 字段更新为从现在开始的 1 周。

现在当我通过我的 Cucumber 运行时,测试,它不起作用:

当用户授权我时,last_published 字段从现在开始更新为 1 分钟,但 2 天前

expected: > Sun, 03 Mar 2013 16:12:44 UTC +00:00
 got:   Fri, 01 Mar 2013 16:13:43 UTC +00:00

当用户没有授权我时,last_published 字段没有变化(我将该字段的默认值设置为 3 月 1 日)

expected: > Sat, 09 Mar 2013 16:13:47 UTC +00:00
 got:   Fri, 01 Mar 2013 15:01:11 UTC +00:00

有任何想法吗?

4

1 回答 1

0

更新属性时,必须重新加载变量 @user:

@user.update_attributes(attribute: value)
@user = User.find(@user)

Cucumber 正在评估存储在 @user 中的值,这些值在方法运行后不是最新的。

于 2013-03-07T17:31:43.277 回答