我遇到私有方法功能方面的问题。
这是我的示例env.rb文件
require 'rspec/expectations'
require 'selenium-webdriver'
#APP_PATH = 'PlainNote.app'
def capabilities
{
'automationName' => 'XCUITest',
'platformName' => 'iOS',
'deviceName' => 'iPhone Simulator',
'platform' => 'Mac',
'version' => '9.2',
'app' => '/Users/shafiq.malik/Documents/Projects/nuff-class-booking-mobile/platforms/ios/build/emulator/HelloCordova.app'}
end
#def absolute_app_path
# File.join(File.dirname(__FILE__), APP_PATH)
#end
def server_url
"http://localhost:8000/index.html"
end
def selenium
@driver ||= Selenium::WebDriver.for(:remote, :desired_capabilities =>
capabilities, :url => server_url)
end
After { @driver.quit }
但是我收到以下错误消息
Given I load the hello world app # features/step_definitions/hello_world.rb:1
private method `capabilities' called for #<Hash:0x007fb9b07c7da8> (NoMethodError)
./features/support/env.rb:25:in `selenium'
我完全不熟悉移动测试。所以它可能是一个非常直接的解决方案。有人可以好心地告诉我哪里出错了。
答案 0 :(得分:0)
在这种情况下,您不应使用capabilities
作为方法名称。
也许它在Kernel
或其他任何地方定义。
有时,当我们根据需要使用一些保留名称时,可能会发生这种情况。您可以在定义之前通过p method(:capabilities)
检查该方法的来源。