как заглушить метод, который принимает и аргумент - PullRequest
0 голосов
/ 30 мая 2018

Я немного застрял (возможно, потому что я впервые использую Minitest), где я хочу stub метод, который принимает аргумент.

def self.bonsai_site_configuration(since=nil)
  data = []
  Site.all.reduce(data) do |data, site|
    begin
      data << JSON.parse(site.bonsai_desc)
    rescue StandardError => exception
      notify_exception(exception)
    end
   data
  end
 return {data: data`}
end

Все, что я просматриваю здесьзаключается в том, что если тестовые случаи, где если site.bonsai_desc не удается (то есть, выбросить исключение).Он должен вызвать notify_exception с заданным exception

Вот как выглядит мой минимальный тест

 test "should return bonsai_site_configuration even on exception" do
    site = Site.first
    raises_exception = -> { raise 'boom' }
    Site.stub(:all, [site]) do
      site.stub(:bonsai_desc, raises_exception) do
        Site.stub(:notify_exception) do
          bonsai_information = Site.bonsai_site_configuration
          assert_equal(0, bonsai_information[:data].count)
        end
      end
    end
  end

После запуска минимального теста тест проходит, но я хочу убедиться, что проверка аргументов также включена.

Что мне делать?

...