Я пишу RubyGem, который может поднять ArgumentError
, если аргументы, предоставленные его единственному методу, являются недопустимыми. Как я могу написать тест для этого с помощью RSpec?
В приведенном ниже примере показан вид реализации, который я имею в виду. Метод bar
ожидает один логический аргумент (:baz
), тип которого проверяется, чтобы убедиться, что он фактически является логическим:
module Foo
def self.bar(options = {})
baz = options.fetch(:baz, true)
validate_arguments(baz)
end
private
def self.validate_arguments(baz)
raise(ArgumentError, ":baz must be a boolean") unless valid_baz?(baz)
end
def self.valid_baz?(baz)
baz.is_a?(TrueClass) || baz.is_a?(FalseClass)
end
end