2016-07-13 105 views
1

我沒有任何代碼,因爲這只是一個假設性問題,但您將如何訪問和操作rspec中的實例變量?訪問rspec中的實例變量

例如,如果你在類的初始化方法中有一個@counter變量,你怎麼能寫一個測試,說如果@counter是一個特定的數字,那麼某個方法應該返回true。如果它等於一個不同的數字,那麼該方法應該返回false。

回答

1
describe Foo do 
    context 'When counter is even' do 
    let(:foo){ Foo.new(4) } 

    specify '#even?' do 
     expect(foo.even?).to be_true 
    end 
    end 
end 

根據你的問題,@counter在初始化方法設置。所以#even?方法將檢查@counter

+0

爲了澄清,計數器不會像這樣設置。玩家名稱將是初始化定義中的參數,初始化時計數器會自動設置爲0。玩家回合後,計數器每次增加一次 –

+0

聽起來你想要一個'#has_moved?'方法。所以這個方法會檢查'@ counter'。上述測試將起作用。 –

+0

好的很酷。我會嘗試解決一些代碼。謝謝你的幫助! –