У меня есть пользовательский факт в ruby, который выглядит так:
Facter.add(:some_random_fact) do
setcode do
output = execute_some_method
if !output.nil? then
begin
pruned_output = output.split("\n")
result = true
rescue
result = false
end
else
result = false
end
end
end
Как написать модульный тест, используя rspec для блока восстановления, чтобы вызвать исключение?
РЕДАКТИРОВАТЬ: Пожалуйста, дайте мне знать, является ли приведенный ниже тест правильным способом проверить его.
it "return fact as false when begin block raises exception" do
output = double(:output)
allow(output).to receive(:split).with(true).and_raise(RuntimeError.new("error occured"))
expect(Facter.fact(:some_random_fact).vallue).to eq(false)
end
nil
output
перед запуском спецификации, потому чтоnil.spilt
вызоветNoMethodError (undefined method 'split' for nil:NilClass)
. - person spickermann   schedule 29.05.2020