Rspec: протестировать исключение, которое не обрабатывается - PullRequest
0 голосов
/ 18 октября 2018

В моем публичном методе #recalculate, вызывая приватный method1.Этот метод вызывает исключение 'StandardError'.Я хочу протестировать этот сценарий, однако получаю сообщение об ошибке.

Примечание. Я не хочу обрабатывать исключение.

def recalculate
  method_1
end

private
def method_1
    ## do some calculation
    raise StandardError.new("Test")
end

Контрольный пример Rspec:

  it "Test" do
    expect { @product.recalculate.recalculate }.to raise_error(StandardError)
    @product.recalculate
  end

1) Product.Test 
  Failure/Error: @product.recalculate
   StandardError:
     Test
   (required)>'

Завершено за 1,39 секунды 1 пример, 1 сбой

1 Ответ

0 голосов
/ 18 октября 2018

Согласно вашему примеру, вторая строка @product.recalculate вызывает фактическое исключение, отсюда и ошибку.Предполагая, что метод recalculate определен в @product объекте, этого должно быть достаточно для его проверки.

it "Test" do
  expect { @product.recalculate }.to raise_error(StandardError)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...