Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 什么';这是跨产品、开发、测试数据库处理数据的好方法;Rails 3中的s(使用Cumber)?_Ruby On Rails_Cucumber_Bdd - Fatal编程技术网

Ruby on rails 什么';这是跨产品、开发、测试数据库处理数据的好方法;Rails 3中的s(使用Cumber)?

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 3应用程序(你有一个带有照片和价格的列表),我正在尝试进行Cumber BDD测试

我有两种类型的数据库数据:

(一) 在我的Prod、Dev和测试服务器中,有一致的数据(如价格范围表)需要相同

(二) 然后还有其他可以从每个环境中更改的数据(如用户名、列表数据等)。我只需要确保我的开发和测试服务器中有大量的数据,这些数据与应该/将要在prod中的数据相匹配

我有两个问题

第一: 处理此类数据的最佳方法是什么?如何以无痛的方式确保不同环境之间的一致性

第二: 我正在使用fixture来填充我的dev db。我很难填充我的测试数据库。填充测试数据库(使用Cucumber时)的最佳方法是什么,这样我就可以运行我的场景了?

db/seeds.rb背后的思想是针对那种几乎是静态的、需要通用的数据。该文件中的任何内容都将在db:setup期间拉入,并可以使用rake db:seed手动添加

第二个问题应该是直截了当的,rake db:夹具:负载不应该依赖于环境。因此,您应该能够执行类似于
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一起使用,请设置一个将为您加载装置的