1

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

我正在将 Ruby 与 Capybara 和站点棱镜一起使用;不是铁轨!!!

我的 test_site 课程是:

class TestSite
  def home
    TestHomePage.new
  end
end

我不能这样吗?

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

World(Some)
4

3 回答 3

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

我将以下类更改为 Module 并将模块包含在 World 中作为 World(App)

class App def home Home.new end end

修改为

Module App def home Home.new end end

如果我将类更改为模块有什么问题吗?对我来说,一切似乎都很好,想要确认一下,然后再继续。

于 2014-06-02T07:09:46.387 回答
1

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

于 2013-08-04T13:46:59.823 回答
0

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

Module Pages
   def my_page
     MyPage.new 
   end
end

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

require_relative 'object_factory'

World(Pages)

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

于 2018-10-09T18:18:45.763 回答