测试和规格有什么区别?

Obl*_*age 28 automated-tests unit-testing ruby-on-rails

我决定试用MiniTest并很快注意到它支持了一些名为"specs"的东西.我之前看过这些引用,但认为它只是与工厂相关的备用测试语法,但如果是这种情况那么为什么MiniTest需要同时支持它们呢?

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

Sci*_*Phi 28

规范的简称来自行为驱动的测试,并鼓励您定义软件的"用途".

将其称为测试会导致更加通用的思考代码的方式,并且不会强化您应该测试接口(而不是实现)的想法.

也就是说,无论你如何编写它们,或者你称之为它们,关键是要有一种自动验证代码正确性的方法,这样你就可以放心了.

  • +1为"规格,规格的缩写",收缩总是让我猜测 (6认同)

Sas*_*tle 15

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

我的观点是,与mini-test et.al相比,这些规范更加"自然",并且更像是代码功能的真实规范.

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

但最后,使用任何让你感觉更舒服的东西.编写的测试几乎总是更好,然后没有编写测试,因为您使用测试框架感到不舒服

编辑

在重新阅读您的问题之后,您似乎特别询问了迷你测试规范.它是minitests的一个补充,它为minitest增加了类似rspec的语法.以上所有内容仍然适用.

  • 现在谷歌搜索给出了你的答案作为第一个结果,呵呵 (8认同)