Я хочу проверить с RSpec функцию my_test. Функция вызывает метод класса другого класса MyHelper.func в rails 4. Я использовал mock для иллюстрации func в классе MyHelper, и я хочу совместить аргумент, который func получает с некоторыми значениями const.RSpec: ожидать массив хешей в классе_double получить
Я использовал
expect(<double>).to receive(func).with(arguments)
Но один из константных аргументов является хэш с более чем 2-х элементов. Когда я проверить мою функции, RSpec выдает ошибку:
received :func with unexpected arguments.
expected: [{"1"=>33.33},{"2"=>33.33},{"3"=>33.33}]
got: [{"2"=>33.33},{"1"=>33.33},{"3"=>33.33}]
Есть ли способ, чтобы соответствовать между двумя массивами? Код:
my_hash = [{"1"=>33.33},{"2"=>33.33},{"3"=>33.33}]
notifier = class_double("MyHelper").
as_stubbed_const(:transfer_nested_constant => true)
expect(notifier).to receive(:func).with(my_hash)
Спасибо! Это отличный пример того, как использовать наши собственные матчи :) – McMendel