由于我一直在为Rails应用程序编写测试套件,我注意到有两种不同的方法可以创建测试,test
块和常规方法:
test "the truth" do
assert true
end
VS。
def test_for_something_else
assert true
end
两种测试结构之间有什么区别吗?我什么时候应该使用另一个?
编辑:在进一步检查时,编写为方法的测试计入rake:stats
,而使用test
语法编写的测试则不计算。有一点不同......
答案 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
命令快速浏览它们。如果你在一个文件中有很多测试,这可以使他们更快地导航它们。