Подтвердить что ты не робот

Тест RSpec ArgumentError по методу с параметрами

У меня возникают проблемы с тем, чтобы этот простой тест проходил на RSpec 2.8.

Я хочу написать простой тест на отсутствие параметров для метода, который их требует (т.е. ArgumentError: неправильное количество аргументов ('x' для 'y')).

Мой тест проверяет метод модуля Gem следующим образом:

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

Мой код модуля gem выглядит так:

module Geolocater
  def ip_lookup(ip_address)
   return ip_address
  end
end

Моя спецификация работает с этим выходом.

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)>'

Что мне здесь не хватает?

4b9b3361

Ответ 1

Вам нужно передать блок #expect, а не регулярный аргумент:

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