2011-06-01 128 views
2

我使用Rspec進行測試。我目前正在創建一個戰鬥系統,我需要根據需要進行廣泛的測試。直到現在,使用rspec,我主要檢查一個方法的結果是否應該返回某個值,創建某些記錄等等。有沒有辦法用rspec檢查內部方法變量?

但我怎麼能(如果可能)檢查方法內的變量?想想這個例子:

def combat 
    weapon_damage = 30 
    total_damage = weapon_damage + other_damage 
    total_damage 
end 

我如何檢查weapon_damage是30,例如?或other_damage的值?正如你所看到的,我正在尋找一種方法來測試我的方法之間的步驟。

回答

3

你不能那樣做。在你的情況下,我建議你將呼叫分成多個方法,以便你可以一個接一個地測試他們的結果。一般來說,如果你傾向於問自己你的方法實際在做什麼,這是一個好兆頭,你應該將代碼分成多個方法。

+0

這確實是一個很好的觀點,但有時對於每一件小事來說都有點太多了。但我看到了這一點。 – Spyros 2011-06-01 22:13:21

+0

這是一個很好的觀點。如果它足夠重要,你想要檢查它,這是非常重要的,有一個單獨的方法 – Gareth 2011-06-01 22:18:15

+0

我仍然認爲這將是很酷,檢查內部的方法變量。我知道你可以使用IDE,例如[Ruby Mine](http://www.jetbrains.com/ruby/),所以它可以在Rspec中有一些應用程序。它會讓你的規格變得龐大,但是這樣的套件會非常防水。很好,可能最終是不必要的 – Starkers 2014-01-27 23:23:59

相關問題