2011-06-01 115 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

相关问题