在网站棱镜中包括黄瓜的世界概念

时间:2013-05-23 10:51:55

标签: ruby cucumber capybara site-prism

如何在场地棱镜中包含黄瓜的世界概念?这样我就可以在World中包含test_site类,然后无需每次在step函数中实例化test_site类。可能吗?

我正在使用Ruby与Capybara和site-prism;不是铁路!!!

我的test_site类是:

class TestSite
  def home
    TestHomePage.new
  end
end

我不能这样做吗?

module Some
  class TestSite
    def home
      TestHomePage.new
    end
  end
end

World(Some)

3 个答案:

答案 0 :(得分:1)

SitePrism自述文件有关于如何处理此问题的建议,请参见此处:

答案 1 :(得分:1)

我找到了问题的答案。

正如Nat建议的那样,我在这里关注了SitePrism自述文件:

[http://rdoc.info/gems/site_prism/file/README.md#Epilogue][1]

我将App类更改为Module并在支持文件中使用了World(App),因此每当我需要在步骤定义中使用元素时,我只能给出     page_name.element_name.click 而不是@app.page_name.element_name.click

我将以下课程改为模块,并将模块纳入世界世界(应用程序)

class App def home Home.new end end

修改为

Module App def home Home.new end end

如果我将类更改为Module会有什么问题吗? 在我继续之前,对我来说一切都很好,想要确认一下。

答案 2 :(得分:0)

您可以创建一个模块以返回所需的所有页面。 在支持文件夹中的此文件中创建一个object_factory.rb,您可以添加:

Module Pages
   def my_page
     MyPage.new 
   end
end

在文件env.rb中,您可以插入:

require_relative 'object_factory'

World(Pages)

在“页面”模块中创建的对象将可用于所有步骤定义