这些天似乎每个人都在使用rspec,但默认情况下rails仍与test :: unit捆绑在一起。
rspec相对于测试单位有什么主要优势吗?很难直接了解这个主题...
答案 0 :(得分:5)
在这些讨论中,通常很多关注语法,这当然是主观的,但RSpec提供了一些有用的功能,这些功能在test / unit,minitest或其扩展库中无处可见。对我来说,三大巨头是:
可读输出(TURN对此有帮助,但它没有打印出需要复制的命令以运行失败的单个示例。)
明智的CTRL-C。在rspec-2中,当你按下CTRL-C时,那个时刻正在运行的例子结束(你可以第二次点击CTRL-C立即停止它),并且所有这些都是在钩子运行之后,你会得到相同的你会得到的输出报告。你有多少次在前50个左右的点中看过F,并且没有给出哪些测试实际失败的迹象。使用rspec-2,这不会发生。
与每个示例和组关联的元数据。 RSpec使用它来支持根据各种标准(位置,名称,ruby版本,命令行标记等)选择要运行的示例,以及基于相同的模块的包含/扩展。
还有更多,但这只是为了给你一个想法。当然,我有偏见,所以我的建议就是一丝不苟。
FWIW, 大卫
答案 1 :(得分:1)
答案 2 :(得分:0)
我认为这主要是主观的。我更喜欢更传统的基于assert
的测试而不是基于匹配器的断言,所以我坚持使用Test::Unit
。我认为rspec更强大的一个领域是内置的存根(你必须使用额外的库来实现Test::Unit
)。