现在似乎每个人都在使用rspec,但rails仍默认捆绑在test :: unit中。rspec比test :: unit有什么主要优势?
rspec比测试单元有什么主要优势吗?很难得到这个问题上的直接信息...
现在似乎每个人都在使用rspec,但rails仍默认捆绑在test :: unit中。rspec比test :: unit有什么主要优势?
rspec比测试单元有什么主要优势吗?很难得到这个问题上的直接信息...
我认为这主要是主观的。我更喜欢基于rspec基于匹配的断言的更传统的基于assert
的测试,所以我坚持使用Test::Unit
。我认为rspec更强大的一个领域是内置stubbing的东西(你必须使用额外的库来完成这个Test::Unit
)。
在这些讨论中,通常有很多关注语法的内容,这当然是主观的,但RSpec提供了一些有用的功能,在测试/单元,minitest或其扩展库中无法看到。三个BIGGIES,对我来说,主要有:
可读的输出(TURN帮助瓦特/本,但它不具备的东西打印出来,你需要复制到运行失败的个别例子的命令)。
合理的CTRL-C。在rspec-2中,当你点击CTRL-C时,那个时刻正在运行的例子就完成了(你可以第二次点击CTRL-C来立即停止它),并且所有这些都在钩子运行后得到输出报告,否则你会得到。在前50个点左右看到一个F有多少次,并没有指出哪些测试实际上失败了。用rspec-2,这不会发生。
与每个示例和组关联的元数据。 RSpec使用它来支持根据各种条件(位置,名称,ruby版本,命令行标签等)选择要运行哪些示例,以及基于相同模块的包含/扩展。
还有更多,但这只是给你一个想法。当然,我是有偏见的,所以请尽我所能来推荐一些盐。
FWIW, 大卫
非常感谢您对Rspec的工作 – apneadiving