我有一个 cucumber、ruby、siteprism 项目,我们在其中使用“rspec”gem 来检查期望值。这包含在我们的 env.rb 中,并在步骤定义中成功使用。
我现在正尝试在 SitePrism 类中做出一些断言,但出现错误。你知道我如何使用那些 expect() 方法吗?
我尝试在定义 SitePrism 类的 .rb 文件中使用 require 'rspec'
加上 include Rspec
,但我仍然遇到同样的错误:
expect(local_value).to eq(@previous_value)
=> Error: NoMethodError: undefined method `expect' for #<xxx_Object @loaded=false>
谢谢!
最佳答案
正如您(从您的评论中)发现的那样,您可以在页面对象类中包含 RSpec::Matchers
以获得 expect
以及 RSpecs 默认匹配器。其中一个匹配器被命名为 all
,它会隐藏之前包含在对象中的 Capybara::DSL all
方法,并产生您所看到的错误。解决该问题的方法是在 current_session 对象(page
)或别名“find_all”上调用 all
的 Capybara 版本。所以 all(...).map(...)
变成了
page.all(...).map(...) # Same as Capybara.current_session.all(...)...
或
find_all(...).map(...) # or page.find_all ...
关于ruby - 无方法错误 : undefined method `expect' when trying to use it within a SitePrism class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248992/