【问题标题】:Stubbing the Capybara session for a page object test为页面对象测试存根 Capybara 会话
【发布时间】:2011-09-20 22:00:01
【问题描述】:

我正在使用带有page object 的 Cucumber,类似于下面显示的简化版本。我需要对 HTML 进行一些非常复杂的解析,所以我希望能够使用 RSpec 对 HTML 固定装置单独测试页面对象,但我有点坚持这样做。我猜我需要在 Capybara 中存根某些东西,并将其作为依赖项传入?

class SomePage
  def header
    session.find('h1').text
  end
  def title
    session.find('title').text
  end

  private
  def session
    @session ||= Capybara.current_session
  end
end

【问题讨论】:

    标签: ruby rspec cucumber bdd capybara


    【解决方案1】:

    为了回答我自己的问题,我发现 Capybara 有一个 #string 方法,它接受一大段 HTML 并返回:

    Capybara::Node::Simple 暴露了所有 Capybara::Node::Matchers 和 Capybara::Node::Finders。这允许您以与在 Capybara 会话中查询当前文档完全相同的方式查询任何包含 HTML 的字符串。

    所以我只是在我的类中添加了一个初始化程序,以允许传递并使用这个节点来代替 Capybara 会话。不需要存根或模拟,它完全符合我的需要。

    【讨论】:

    • 感谢您的回答和快速响应。非常感谢!
    猜你喜欢
    • 2011-09-26
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2014-09-11
    • 1970-01-01
    相关资源
    最近更新 更多