我们使用ActiveRecord独立(不是Rails应用程序的一部分)来使用RSpec进行单元测试。我们正在测试数据库上的触发器,它将行插入到审计表中。如何强制ActiveRecord始终插入,更新,删除和检索数据库?
的类别是:
文件夹下有很多文件
文件夹下有很多FileAudit
事件的顺序是这样的:
- 创建文件夹
- START TEST ONE
- 创建文件
- 做一些东西到文件
- 获取Folder.file_audits
- 检查相关FileAudit记录
- 销毁文件
- 销毁FileAudits
- END测试一个
- STA RT测试两个
- 创建文件
- 做一些其他的东西,文件
- 获取Folder.file_audits
- 检查相关FileAudit记录
- 销毁文件
- 销毁FileAudits
- 端到端测试TWO
- 销毁文件夹
来自测试一的FileAudits正在被破坏,但不是来自测试二。 ActiveRecord似乎认为在第二次测试结束时,该表中并没有新的东西可以删除。
我可以做Folder.file_audits(true)来刷新缓存,但我宁愿只是禁用任何和各种缓存,并让ActiveRecord只是做我告诉它而不是做它认为最好的。
我还需要在File上设置一个标志为相同的值并验证触发器没有创建审计记录。当我将该标志设置为不同的值时,我可以在日志中看到更新语句,但是当我将它设置为相同的值并保存时,日志中没有更新。
我确信缓存等等对于网站来说很好,但我们并没有这样做。我们需要它始终从数据库获取所有记录,并且始终更新和删除。我们怎么做到这一点?
我们使用的是ActiveRecord 3.1.3。
感谢