ruby - 无方法错误 : undefined method `check_url' for nil:NilClass

标签 ruby testing cucumber webdriver watir

我有一个模块,已包含在我的主类中:

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 methodcheck_url' for nil:NilClass` 我哪里出错了,暂时忘记方法中的内容,我只是想知道为什么我收到此错误

最佳答案

我认为问题就在这里

@dealer.check_url('www.google.com')
@dealer = FindYourDealerPage.new(@browser)

请注意在分配 @dealer 之前如何调用 check_url...这意味着 @dealer 仍然是 nil > 当您进行方法调用时,这就是为什么您会收到 nil:NilClassNoMethodError 的原因。

此外,您当前有 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/

相关文章:

ruby-on-rails - 为 RoR Web 应用程序创建用户时间表

ruby - 是否可以像 Python 一样将 Ruby 编译为字节码?

testing - 在所有测试用例中使用相同的代码

ruby-on-rails - 用 cucumber 和 webrat 测试 authlogic-open-id 的最佳方法是什么?

javascript - 如何使用正则表达式将数据从特征文件传递到步骤定义文件?

ruby - 安装 RDoc 文档时出错 : incompatible encoding regexp match

ruby-on-rails - 在数据库中存储类名以模仿设计模式 - Ruby on Rails

java - 如何判断一个java方法是否可以在另一个方法中调用

c# - 如何对可空类型使用 Mock 设置

ruby - Cucumber hooks可以区分标签吗