Ruby on rails 什么';这是跨产品、开发、测试数据库处理数据的好方法;Rails 3中的s(使用Cumber)?
我有一个小的Rails 3应用程序(你有一个带有照片和价格的列表),我正在尝试进行Cumber BDD测试 我有两种类型的数据库数据: (一) 在我的Prod、Dev和测试服务器中,有一致的数据(如价格范围表)需要相同 (二) 然后还有其他可以从每个环境中更改的数据(如用户名、列表数据等)。我只需要确保我的开发和测试服务器中有大量的数据,这些数据与应该/将要在prod中的数据相匹配 我有两个问题 第一: 处理此类数据的最佳方法是什么?如何以无痛的方式确保不同环境之间的一致性 第二: 我正在使用fixture来填充我的dev db。我很难填充我的测试数据库。填充测试数据库(使用Cucumber时)的最佳方法是什么,这样我就可以运行我的场景了? db/seeds.rb背后的思想是针对那种几乎是静态的、需要通用的数据。该文件中的任何内容都将在db:setup期间拉入,并可以使用rake db:seed手动添加 第二个问题应该是直截了当的,rake db:夹具:负载不应该依赖于环境。因此,您应该能够执行类似于Ruby on rails 什么';这是跨产品、开发、测试数据库处理数据的好方法;Rails 3中的s(使用Cumber)?,ruby-on-rails,cucumber,bdd,Ruby On Rails,Cucumber,Bdd,我有一个小的Rails 3应用程序(你有一个带有照片和价格的列表),我正在尝试进行Cumber BDD测试 我有两种类型的数据库数据: (一) 在我的Prod、Dev和测试服务器中,有一致的数据(如价格范围表)需要相同 (二) 然后还有其他可以从每个环境中更改的数据(如用户名、列表数据等)。我只需要确保我的开发和测试服务器中有大量的数据,这些数据与应该/将要在prod中的数据相匹配 我有两个问题 第一: 处理此类数据的最佳方法是什么?如何以无痛的方式确保不同环境之间的一致性 第二: 我正在使用f
RAILS\u ENV=test rake db:fixtures:load
的操作,并且应该使用fixture数据加载测试数据库。
db/seeds.rb背后的思想是针对那种几乎是静态的、需要通用的数据。该文件中的任何内容都将在db:setup期间拉入,并可以使用rake db:seed手动添加
第二个问题应该是直截了当的,rake db:夹具:负载不应该依赖于环境。因此,您应该能够执行类似于
RAILS\u ENV=test rake db:fixtures:load
的操作,并且应该使用您的fixture数据加载您的测试数据库。正如建议的那样,db/seed可以用于某些用例,您还可以签出此解决方案:这可能会解决其他用例
关于Cumber,真正的Cumber理念是通过web界面创建资源,例如创建用户:转到用户登录,注册,作为该用户登录。它们(第292页),但在我看来,只要web界面工作流也经过测试,就太方便了
为此,我更喜欢使用工厂而不是固定装置,因为它们在正在进行的开发中不那么脆弱。我会为rails 3推荐或factory\u girl\u rails
。因此,您可以有一个步骤定义:
/Given a valid user exists?/ do
@user = Factory(:user)
end
它使用一个用户来填充用户表,并创建一个实例变量,您可以使用该变量来完成场景。如果您想将fixture与cucumber一起使用,请设置一个将为您加载fixture的工具。正如建议的那样,db/seeds可以用于某些用例,您也可以签出此解决方案:这可能会解决其他用例 关于Cumber,真正的Cumber理念是通过web界面创建资源,例如创建用户:转到用户登录,注册,作为该用户登录。它们(第292页),但在我看来,只要web界面工作流也经过测试,就太方便了 为此,我更喜欢使用工厂而不是固定装置,因为它们在正在进行的开发中不那么脆弱。我会为rails 3推荐或
factory\u girl\u rails
。因此,您可以有一个步骤定义:
/Given a valid user exists?/ do
@user = Factory(:user)
end
它使用一个用户来填充用户表,并创建一个实例变量,您可以使用该变量来完成场景。如果要将装置与cucumber一起使用,请设置一个将为您加载装置的