ActiveRecord.Where没有返回测试环境中的对象列表(迷你测试)

时间:2017-08-28 21:02:48

标签: ruby-on-rails

我的某个测试存在问题。我有一个具有激活(布尔)列的用户模型。当我尝试通过以下方式找到在索引操作中激活显示的所有用户时:

def index
    @users = User.where(activated: true).paginate(page: params[:page],
                                                  per_page: 10).order('name ASC')
end

在开发ENV中渲染视图时,代码工作正常。但是,当我使用以下命令在测试ENV中运行代码时

rails console test 

User.where(activated:true)

它返回ActiveRecord :: Relation [],这打破了我的一个测试。

我也尝试使用rails console(Dev ENV)运行上面的方法,并获得了返回给我的用户模型列表。

有人可以解释为什么代码在测试ENV中不起作用吗?

**作为更新,我使用灯具作为我的测试数据,例如:

我使用像

这样的灯具
<% 30.times do |n| %>
user_<%= n %>:
  name:  <%= "User #{n}" %>
  email: <%= "user-#{n}@example.com" %>
  password_digest: <%= User.digest('password') %>
  activated: true,
  activated_at: Time.zone.now
<% end %>

0 个答案:

没有答案