当前位置: 首页 > 知识库问答 >
问题:

Factory_girl/水豚和cucumber

弘承业
2023-03-14

在我的Rails项目中,我通常使用factory_girl在我的应用程序中构建/创建用户。我想知道在使用Cucumber, Capybara时是否可以使用factory_girl来测试用户与我的应用程序的交互。没有数据库可以保存它们,我只是想存储它们的凭据

我可以有很多用户希望为每个用户创建工厂(除非有更好的Cucumber方法)。

在我的支持文件夹中,我可以创建一个Factorys文件夹,然后创建一个。保存每个用户的rb文件。

FactoryGirl.define do
  factory :user_1 do
    username "username"
    password "password"
  end
end

在我的env.rb文件中,我需要工厂女孩,但这还不够

require 'factory_girl'

好像在我的特色中我尝试

Then(/^I will enter my credentials$/) do
  fill_in 'username', :with => user_1.email
  fill_in 'password', :with => user_2.password
  click_button 'login-button'
end

我明白了

uninitialized constant user_1

我也有一种感觉,如果这是工作,我需要一个前钩子,将建立工厂用户,但我不确定在目前的整个设置。

是否有人以这种方式使用factory_girl,或者正如我之前提到的,是否有更好的方法来做到这一点?

共有2个答案

薛经艺
2023-03-14

感谢@MarshallCap提供的答案,我想出了一个可行的解决方案,并想与大家分享,也许它是对的,也许有更好的方法,但这就是我最终所做的,如果这对其他人有帮助,那就太好了。

首先,我为我的factory\u用户创建了一个类

class Users
  FactoryGirl.define do
    factory :user_1, :class => :users do |u|
      u.skip_create
      u.username "username1"
      u.password "password"
    end
  end

 FactoryGirl.define do
   factory :user_2, :class => :users do |u|
     u.skip_create
     u.username "username2"
     u.password "password2"
   end
 end
end

在环境中需要factory\u girl。rb

require 'factory_girl'

在我的登录脚本中,在step\u定义中,为实例变量分配了用户属性的哈希

Then(/^I will enter my credentials$/) do
 @user = FactoryGirl.attributes_for(:user_1)
 fill_in 'username', :with => @user[:username]
end

壤驷乐邦
2023-03-14

你应该可以这样做

Given(/^I will enter my credentials$/) do
  @user = user = FactoryGirl.create(:user)
end

你可以阅读更多关于这个问题的内容https://stackoverflow.com/a/16841999/4421094真的很有帮助

 类似资料:
  • 我是cucumber和水豚的新手,我对以下错误感到困惑: 在我的功能中,我有: 我的步骤如下所示: 我尝试了“click(button\u text)和click\u link”方法。我想这可能是我没有看到的明显的东西。我试图找到按钮元素的css定位器,然后单击该元素。我认为regex不需要更改,因为我正在更改“button\u text”局部变量的内容。还是我?

  • 我正在根据一个主要开发人员的请求编写一个自动化测试。 正在开发的网页的一部分是允许用户提取数据的csv。在过去,CSV中的报头排序存在许多缺陷。 我需要打开csv,将头转换成一个数组,并与我创建的预期头的数组进行比较。 我已经读过Ruby2.0中的CSV文档,但我对Ruby还是个新手,我正在努力弄明白这一切的意义。 因此,期望csv中的第一个头eql我自己的数组中的第一个头。 我如何将csv文件头

  • 我用cucumber配水豚和硒-WebDriver。到目前为止,我一直使用Chrome,但该项目也要求对Firefox进行一些跨浏览器测试。 在Firefox中运行时,我只是得到一个空白窗口,网页不出现。

  • 将firefox更新到48版,但它给出了以下错误。任何帮助如何解决它: Selenium::WebDriver::错误::WebDriver错误:无法在60秒内从/library/ruby/gems/2.0.0/gems/selenium-webdriver-2.52.0/lib/selenium/webdriver/firefox/launcher获得稳定的firefox连接(127.0.0.1

  • 我正在为我的Rails代码库编写一个测试套件,并试图使用Capybara单击一个搜索图标,检查搜索字段是否出现。然而,由于Capybara找不到CSS元素“search\u icon”,测试一直失败。我试过使用和