RSpec - 如何测试数据库视图?

时间:2013-02-23 17:40:21

标签: ruby-on-rails ruby activerecord rspec factory-bot

我有一个支持数据库视图的类。我正在使用FactoryGirl来测试这个,所以我按照正常步骤创建user实例,如下所示:

before(:each) do
  @user = FactoryGirl.create(:user)
end

然后我查看了查看次数:

Balance.all.count   # It is returning 0, it should be returning 1

我对数据库视图的理​​解是,在事务提交到数据库之前,它们才会更新。我有一个使用NHibernate的背景,为了从数据库中获取更新的值,我会做类似的事情:

Session.Flush();

这样我就可以查询数据库视图并获取更新的值,但稍后仍会回滚或提交我的事务。

有没有办法在ActiveRecord中执行此操作?或者有没有办法将我的更改提交到数据库并清理它?我不想关闭所有测试的事务,只能测试这个特定的类。

1 个答案:

答案 0 :(得分:2)

let!(:user) { FactoryGirl.create(:user) }

您可能还想查看database_cleaner宝石。