来自页面声明的未初始化的常量SitePrism

时间:2016-03-28 15:52:17

标签: ruby cucumber capybara site-prism

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

的Gemfile:

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'

Env.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&lt; SitePrism :: Page”抛出错误。 RubyMine无法找到SitePrism声明。我在设置中遗漏了什么吗?

2 个答案:

答案 0 :(得分:1)

您的错误看起来需要&#39;相关的,但这是我如何通过以下工作: https://github.com/thuss/standalone-cucumber

Haven在一段时间内没有使用过黄瓜,但我看到的方式是&#34;页面&#34;目前在我的Rails项目中实现:

  • 在&#34; features / support / pages&#34;
  • 中创建一个文件
  • 遵循命名空间约定
  • 使用模块,然后通过World()方法导入。

也许这可行:

特征性/支撑性/页/ 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)

请注意我没有明确要求任何网页类,看起来黄瓜可能会要求你吗?

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

答案 1 :(得分:0)

所以出现此问题的原因是由于文件正在自动加载。只需确保首先require个gem文件即可理解名称空间