Ruby测试:块与方法

时间:2010-01-12 09:43:11

标签: ruby-on-rails ruby testing

由于我一直在为Rails应用程序编写测试套件,我注意到有两种不同的方法可以创建测试,test块和常规方法:

test "the truth" do
  assert true
end

VS。

def test_for_something_else
  assert true
end

两种测试结构之间有什么区别吗?我什么时候应该使用另一个?

编辑:在进一步检查时,编写为方法的测试计入rake:stats,而使用test语法编写的测试则不计算。有一点不同......

3 个答案:

答案 0 :(得分:4)

我认为块语法是由于行为驱动开发框架(如RSpec)的普及而增加的,它们更自然的应该做X ... 语法。最后,这是个人偏好的问题。

答案 1 :(得分:1)

我希望技术上两者之间没有区别。前者允许您使用字符串来描述您的测试,而使用后者的形式,您必须提出一个描述性的方法名称,这些名称有时令人烦恼且难以阅读[1]。由于这种差异,我个人更喜欢前者,但最终归结为个人/项目偏好。

[1] "add two interleaving timers that trigger in the opposite order"test_addTwoInterleavingTimersThatTriggerInTheOppositeOrder(...)

答案 2 :(得分:0)

我发现的一个区别/烦恼是Vim与Ctags和TagList插件。如果您的测试不是作为函数编写的,则无法使用:TlistToggle命令快速浏览它们。如果你在一个文件中有很多测试,这可以使他们更快地导航它们。

相关问题