Vraag RSpec-test ArgumentError op methode met parameters


Ik ondervind problemen bij het doorgeven van deze eenvoudige test op RSpec 2.8.

Ik wil een eenvoudige test schrijven voor de afwezigheid van parameters op een methode die ze vereist (d.w.z. ArgumentError: verkeerd aantal argumenten ('x' voor 'y')).

Mijn test test een Gem-modulemethode zoals:

describe "#ip_lookup" do
  it "should raise an ArgumentError error if no parameters passed" do
    expect(@geolocater.ip_lookup).to raise_error(ArgumentError)
  end
end

Mijn gem-modulecode ziet er zo uit:

module Geolocater
  def ip_lookup(ip_address)
   return ip_address
  end
end

Mijn spec werkt met deze uitvoer.

Failure/Error: expect(@geolocater.ip_lookup).to raise_error(ArgumentError)
     ArgumentError:
       wrong number of arguments (0 for 1)
     # ./lib/geolocater.rb:4:in `ip_lookup'
     # ./spec/geolocater_spec.rb:28:in `block (3 levels) in <top (required)>'

Wat mis ik hier?


13
2018-01-11 15:40


oorsprong


antwoorden:


Je moet een blok doorgeven aan #expect, geen regelmatig argument:

describe "#ip_lookup" do
  it "should raise an ArgumentError error if no parameters passed" do
    expect { @geolocater.ip_lookup }.to raise_error(ArgumentError)
  end
end

25
2018-01-11 16:10