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

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

最佳答案

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



所以我只是在我的类中添加了一个初始化器,以允许传递和使用这个节点来代替 Capybara session 。不需要 stub 或模拟,它完全符合我的需要。

关于ruby - 为页面对象测试 stub Capybara session ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7492303/

10-13 06:52
查看更多