Как издеваться над функциями модуля Ruby?

Как я могу имитировать функции модуля самостоятельно -написанного модуля внутри моего проекта?

Учитывая модуль и функцию

module ModuleA::ModuleB
  def self.my_function( arg )
  end
end

который называется как

ModuleA::ModuleB::my_function( with_args )

Как мне издеваться над ним, когда он используется внутри функции, для которой я пишу спецификации?


Удвоение(obj = double("ModuleA::ModuleB"))для меня не имеет смысла, так как функция вызывается для модуля, а не для объекта.

Я пытался его заглушить(ModuleA::ModuleB.stub(:my_function).with(arg).and_return(something)). Очевидно, это не сработало. stubтам не определено.

Затем я попробовал это с should_receive. Еще раз NoMethodError.

Каков предпочтительный способ издевательства над модулем и его функциями?

11
задан Torbjörn 5 July 2012 в 21:50
поделиться