49

我决定尝试MiniTest并很快注意到它支持称为“规范”的东西。我以前看过这些引用,但认为它只是与工厂相关的替代测试语法,但如果是这种情况,那么为什么 MiniTest 需要同时支持它们呢?

当我学习 Ruby on Rails 时,我们只介绍了测试,所以我对规范一无所知。当我谷歌规范时,我发现了很多关于如何编写好的规范但没有解释它们什么的东西。测试和规格有什么区别?

4

2 回答 2

64

规范是规范的缩写,来自行为驱动测试,并鼓励您定义软件“做什么”的思维方式。

将其称为测试会导致对代码进行更一般的思考方式,并且不会强化您也应该测试接口(而不是实现)的想法。

也就是说,无论你如何编写它们,或者你如何称呼它们,关键是要有一种自动化的方式来验证你的代码的正确性,这样你就可以放心地继续下去。

于 2013-05-28T22:40:22.380 回答
28

谷歌测试与规格。一些好读物弹出:

我的观点是,与 mini-test et.al 相比,规范读起来更“自然”,感觉更像是代码功能的真实规范。

Rspec 是 DSL 的一个很好的例子,专门用来编写在阅读时有意义的测试,即使对于技术不那么倾向的人也是如此。

但最后,使用任何让你感觉更舒服的东西。写测试几乎总是比不写测试好,因为你觉得使用测试框架不舒服

编辑

重新阅读您的问题后,您似乎特别询问了迷你测试规格。它是对 minitests 的补充,为 minitest 添加了类似 rspec 的语法。以上所有内容仍然适用。

于 2013-05-28T22:33:53.977 回答