我有一个模块,已包含在我的主类中:
module GenericPage
def check_url=(page)
puts(page)
end
end
我创建了我的类的一个新实例,我在 Cucumber 中调用它
require_relative '../../../support/helper_methods'
class FindYourDealerPage
include GenericPage
def initialize(browser)
@browser = browser
end
def search_location=(location)
@browser.text_field(:id, 'findDealerSearchField').set(location)
@browser.send_keys :tab, :enter
end
cucumber :
Given /^I am on the find your dealer page$/ do
@browser.goto 'www.google.com'
@dealer.check_url('www.google.com')
@dealer = FindYourDealerPage.new(@browser)
end
When /^I select a desired preference$/ do
end
Then /^my filtered selection should be submitted$/ do
end
运行此命令时,我收到错误 NoMethodError: undefined method
check_url' for nil:NilClass` 我哪里出错了,暂时忘记方法中的内容,我只是想知道为什么我收到此错误
最佳答案
我认为问题就在这里
@dealer.check_url('www.google.com')
@dealer = FindYourDealerPage.new(@browser)
请注意在分配 @dealer
之前如何调用 check_url
...这意味着 @dealer
仍然是 nil
> 当您进行方法调用时,这就是为什么您会收到 nil:NilClass
的 NoMethodError
的原因。
此外,您当前有 def check_url=(page)
,但您调用了 check_url(page)
。根据您想要在此处发生的情况,您需要将定义更改为 def check_url(page)
或将调用更改为 @dealer.check_url = 'www.google.com'
(我怀疑前者更合适)。
关于ruby - 无方法错误 : undefined method `check_url' for nil:NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992729/