ruby-on-rails 导轨夹具vs种子

fcwjkofz  于 2022-12-15  发布在  Ruby
关注(0)|答案(2)|浏览(154)

我正在学习RubyonRails,我想确保我理解了fixture和seed数据之间的区别。
我所理解的是,fixture基本上是您运行测试Assert所针对的测试数据,并且在测试完成后没有持久性,而种子是在您执行rake db:seed之类的操作时自动放入数据库的。
为什么要在这种情况下使用种子呢?仅仅是为了避免写出所有无数的测试Assert吗?对于那些您知道在应用程序投入生产时需要存在于数据库中的数据吗?
(我猜,静态数据会一直存在,就像留言板上的第一个管理员一样?)

l7wslrjt

l7wslrjt1#

种子数据是用必要的先决条件数据填充数据库,使应用从一开始就可用,比如添加一个默认的管理员帐户,使应用从一开始就可管理。
种子数据不应用于测试目的。在测试时,您应始终确保数据库是干净的,以便您知道示例使用的唯一数据是由示例本身填充的数据,而不是来自外部任何地方的数据,这样可以避免混淆。
fixture是一种方法,但是更好的方法是使用像factory girl这样的工厂,查看railscast episode以获得更好的解释。

nhhxz33t

nhhxz33t2#

许多应用程序需要一些数据才能正常运行。例如,国家和邮政编码列表。或者,用户可能扮演的角色列表,即使数据库中还没有用户。
从启动和运行开发环境的Angular 来考虑种子数据,一般来说,对于一个新的Rails开发人员来说,开发任何应用的过程都应该是这样的:
1.克隆存储库
1.通过捆绑程序安装gem
1.创建并植入开发和测试数据库
1.运行测试,测试应通过

相关问题