我正在使用Cucumber,Ruby和SitePrism课程。我试图在SitePrism类中进行断言,并设法使用'期望'包括RSpec :: Matchers在内的方法,但是,我正在使用' binding.pry'用于调试,我刚才注意到我不能再使用它,因为它一直没有出现以下错误:
NoMethodError:私有方法`print'呼叫#RSpec :: Matchers :: BuiltIn ::输出:0x0000000a5536b0> 你的意思是?的printf 的sprintf
你知道错误是什么吗?我尝试过不同的方法来包含RSpec :: Matchers,所以不确定我是否采取了错误的做法?
*Method 1:*
include RSpec::Matchers
class SitePrismPage
*Method 2:*
class SitePrismPage
extend RSpec::Matchers
*Method 3:*
class SitePrismPage
end
World{SitePrismPage.new}
答案 0 :(得分:1)
旧问题,但提供了更多信息
虽然这里没有足够的代码来判断,但是如果您遵循SitePrism指南,则可以在step_definitions中执行测试,不需要您包含或加载任何东西。
您不需要全部3种设置。只需在您的env.rb
文件中需要必需的文件,就可以了。
这使您可以进行相当干净的测试,而且还可以防止多余的东西混入不应有的地方。
取决于您与之交谈的对象,它旨在执行Cucumber World中的所有测试以及支持代码中的所有Modeling工作(但这又是一个问题)