当前位置:  开发笔记 > 编程语言 > 正文

使用RSpec在测试数据库中创建/重新创建迁移生成的记录

如何解决《使用RSpec在测试数据库中创建/重新创建迁移生成的记录》经验,为你挑选了1个好方法。

我在Rails中进行了迁移,将记录插入到数据库中.Category模型取决于此记录.由于RSpec在每个示例之前清除数据库,因此该记录丢失,而且似乎永远不会创建,因为RSpec似乎不会从迁移生成数据库.在数据库中创建/重新创建此记录的最佳方法是什么?它会在之前使用(:all)吗?



1> James Baker..:

这不是RSpec清除数据库,而是Rails的rake:db:prepare任务将dev数据库的模式(但不是内容)复制到*_test db中.

是的,您可以使用before(:all),因为事务包含在每个单独的示例中 - 但是简单的fixture文件也可以执行相同的工作.

(对于这个问题,有一个更复杂的通用解决方案:转向面向服务的体系结构,其中'dev'和'test'服务将成为完全独立的实例.然后,您可以将测试数据库配置指向开发数据库您的测试服务,禁用rake:db:prepare,并在重新生成时从迁移构建测试服务.然后您可以测试迁移和数据转换.)

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有