【发布时间】:2010-10-04 03:13:20
【问题描述】:
在测试环境 (RAILS_ENV=test rails console) 中通过从 Rails 控制台调用 Entity.create(:name => "Entity1") 来保存对象时,使用 mysql 客户端检查时,“Entity1”对象正确出现在测试数据库 (MySQL) 中。
但是当在 rspec 文件 (entity.create(:name => "Entity1"); sleep 100) 中执行相同的操作并在睡眠功能期间检查测试数据库时,它似乎完全是空的。
为什么?保存的记录在哪里? (当时我在数据库中需要它,原因是一些 Sphinx 测试。)
我只想补充一点,在规范中查询创建的实体可以正常工作(即使它没有出现在数据库客户端中)。所以看起来 Rails 在这里做了一些我不太了解的奇迹。
更奇怪(至少对我而言 ;-))...在创建对象后执行 Entity.connection.commit_db_transaction() 时,记录突然出现在数据库中(但不再自动清理)。
【问题讨论】:
标签: ruby-on-rails testing ruby-on-rails-3 rspec