Попробуйте использовать набор
require 'set'
xs = Set[3,5,7,9]
@cat = Minitest::Mock.new
@cat.expect :meow?, true, [xs]
@cat.meow? 7 # => ok...
@cat.expect :meow?, true, [xs]
@cat.meow? 4 # => boom!
В качестве альтернативы, менее конкретный вариант:
Учитывая, что значение, возвращаемое макетом, не является функцией значения параметра, возможно, вы можете просто указать класс для параметра при настройке макета. Вот пример кота, который ожидает, что meow?
будет вызван четыре раза с произвольным целым числом.
@cat = Minitest::Mock.new
4.times { @cat.expect(:meow?, true, [Integer]) }
# Yep, I can meow thrice.
@cat.meow? 3 # => true
# Mope, I can't meow a potato number of times.
@cat.meow? "potato" # => MockExpectationError