1

任何人都知道,我如何存根类变量初始化?

我定义

@@connection = Bunny.new.start

用于限制连接数,但现在我必须对其进行测试,并且当我尝试以一般方式存根时,例如

allow_any_instance_of(Bunny).to receive(:start) { something }

它不起作用。@@变量提前初始化。

另外,我可以重新定义它:

before do
  @@connection = double('conn')
end

但它不适合我,因为我必须不允许创建到 AMQP 的连接

解决

我不知道该怎么做,所以我使用了 bunny-mock,它帮助了我

4

1 回答 1

0

我不知道这是否是不好的做法,但是:

YourClass.class_variable_set(:@@variable, 'value')

IE

before do
 YourController.class_variable_set(:@@connection, 'value')
end
于 2017-01-27T17:04:22.943 回答