RSpec тест ArgumentError по методу с параметрами - PullRequest
14 голосов
/ 11 января 2012

У меня проблемы с получением этого простого теста для 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)>'

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

1 Ответ

29 голосов
/ 11 января 2012

Вам нужно передать блок #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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...