测试和规格有什么区别?

时间:2013-05-28 21:46:44

标签: ruby-on-rails unit-testing automated-tests

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

当我学习Ruby on Rails时,我们只讨论过测试,所以我对规格一无所知。当我在谷歌规范中找到很多关于如何编写好文章的内容但没有解释他们的内容。测试和规格有什么区别?

2 个答案:

答案 0 :(得分:26)

规范的简称来自行为驱动的测试,并且鼓励您定义软件所做的“思维”的思维方式。

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

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

答案 1 :(得分:12)

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

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

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

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

修改

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