【问题标题】:uninitialized constant SitePrism from page declariation来自页面声明的未初始化常量 SitePrism
【发布时间】:2016-03-28 15:52:17
【问题描述】:

我正在尝试使用 Capybara、Cucumber 和 SitePrism 建立一个基本框架,但是当我开始测试时,我不断收到错误消息“未初始化的常量 SitePrism (NameError)”。

宝石文件:

gem 'cucumber', '2.3.3'
gem 'capybara', '2.6.2'
gem 'selenium-webdriver', '2.53.0'
gem 'rspec'
gem 'site_prism'
gem 'mime-types', '>2.6', '<2.99.1'

环境.rb

require 'capybara'
require 'capybara/rspec'
require 'capybara/dsl'
require 'capybara/cucumber'
require 'selenium-webdriver'
require 'site_prism'
require 'cucumber'

require_rel '../features/pages'
require_rel '../features/classes'

World(Capybara::DSL)
World(Capybara::RSpecMatchers)

登录页面

class LoginPage < SitePrism::Page
end

登录类

class Login

def initialize
  @current_page = LoginPage.new
end 

错误是在“class LoginPage

【问题讨论】:

    标签: ruby cucumber capybara site-prism


    【解决方案1】:

    您的错误看起来与“需要”相关,但这是我如何让它工作的: https://github.com/thuss/standalone-cucumber

    有一段时间没有使用黄瓜了,但是我看到我的 Rails 项目中当前实现的“页面”的方式:

    • 在“功能/支持/页面”中创建一个文件
    • 遵循命名空间约定
    • 使用模块,然后通过 World() 方法导入。

    也许这可能有效:

    features/support/pages/login_page.rb

    module Pages
     module LoginPage
    
      class LoginPageObj < SitePrism::Page
      end
    
      def login_obj
       LoginPageObj.new
      end
    
     end
    end
    World(Pages::LoginPage)
    

    环境文件:

    require 'capybara'
    require 'capybara/cucumber'
    require 'site_prism'
    
    
    Capybara.configure do |config|
      config.default_driver = :selenium
      config.app_host   = 'http://www.google.com'
    end
    
    World(Capybara::DSL)
    World(Capybara::RSpecMatchers)
    

    请注意我不必明确要求任何页面类,看起来 Cucumber 可能需要它?

    • 请注意,这是没有 RubyMine 的(我不使用它)。如果它在没有 RubyMine 的情况下也能工作,我会指出这一点。

    【讨论】:

    • 谢谢!你的解决方案奏效了。我还发现我错过了 require_all gem。我的最终解决方案是移动文件夹并安装 require_all gem。
    【解决方案2】:

    所以你遇到这个问题的原因是因为文件被自动加载。只需确保您首先require gem 文件,以便理解命名空间

    【讨论】:

      猜你喜欢
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多