2016-12-16 34 views
0

有人知道,我如何可以存根类变量初始化?Rspec 3 stub类变量

我定义

@@connection = Bunny.new.start 

的限制连接数,但现在我就来测试一下,当我试图存根用普通的方式,像

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

这是行不通的。变量初始化为@@

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

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

,但它不适合我,因为我已经不允许创建于AMQP连接

求解

我没有弄清楚如何做到这一点,所以我用兔子模拟,它帮助我

+0

这可能帮助:http://stackoverflow.com/a/20518845/259889 – Sid

+0

谢谢,但它不是我所需要的。初始化期间我需要存根类变量。 –

回答

0

我不知道这是不好的做法,但什么约:

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

i。即

before do 
YourController.class_variable_set(:@@connection, 'value') 
end