2

メインクラスに含めたモジュールがあります:

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

キュウリ:

    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` が表示されます。どこが間違っているのでしょうか。今のところメソッドの内容を忘れてください。このエラーが発生した理由を知りたいだけです

4

1 に答える 1

5

問題はここだと思います

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

check_url代入する前に呼び出す方法に注意してください@dealer...つまり、メソッド呼び出しを行うときであり、それが for を取得する@dealer理由です。nilNoMethodErrornil:NilClass

また、あなたは現在 を持ってdef check_url=(page)いますが、あなたは を呼び出しますcheck_url(page)。ここで何が起こるかによって、定義をdef check_url(page)変更するか、呼び出しを変更する必要があります@dealer.check_url = 'www.google.com'(前者の方が適切だと思います)。

于 2012-12-21T15:29:49.400 に答える