首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Minitest和Rspec

Minitest和Rspec
EN

Stack Overflow用户
提问于 2012-09-18 12:55:23
回答 2查看 13.9K关注 0票数 50

我刚刚看了一个Minitest的Railscast

使用RSpec和Minitest测试rails应用的优缺点是什么?从RSpec转换到Minitest会丢失哪些功能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-19 00:00:25

我是RSpec开发人员之一,从未使用过minitest,所以在阅读此答案时请考虑我的偏见。

总的来说,RSpec的强大之处在于它将如此多的测试概念具体化为一流的对象。Unit和Minitest使用简单的方法进行断言,而RSpec使用支持否定、自描述等功能的一级匹配器对象。RSpec的示例是支持丰富元数据的一级对象;minitest/spec将it块编译成简单的方法,而这些方法不支持相同类型的丰富元数据。minitest支持使用接受参数的第一级结构(共享示例组)指定共享行为;对于RSpec,您可以使用inheritance or a mixin to re-use tests,但它不具有相同的第一级支持。RSpec有一个显式的格式化程序API (有许多第三方格式化程序使用它);我不知道最小的有相同类型的一流格式化程序API。

作为一个每天都在不断运行测试和练习测试驱动开发的人,我发现RSpec给了我很大的帮助。然而,许多人发现它过于夸张了,而且额外的抽象也增加了认知成本。

以下是我认为minitest缺少的RSpec的一些具体功能:

  • before(:all) hooks (请注意,这是RSpec的一个高级用户功能,应该很少使用;在使用groups
  • Shared contexts
  • Rich hooks
  • 共享示例模拟元数据的多年中,我只在少数情况下使用过它,这些支持可用于控制运行哪些示例,将共享上下文包含在哪些示例组中,将模块混合到哪些示例组中,并通过rspec-mocks支持广泛的模拟功能;Mock要简单得多,而且在comparison.
  • RSpec中有更多限制,它有rspec-fire,这很棒。

使用Minitest的好处:

  • 它内置在标准库中,所以你不需要安装任何额外的东西。
  • 它可以在def test_blahit 'blah'样式中使用。
  • 它的代码库非常小和简单。在comparison.
  • Minitest中,RSpec的加载速度比RSpec快(与RSpec的3个gem文件相比,它大约有4个代码文件)--但请注意,RSpec绝不慢;在我最近的大多数项目中,我从RSpec得到的测试反馈不到1秒(通常不到500毫秒)。

总体而言,它有点像Sinatra‘s,我认为Minitest和RSpec都是很好的选择,取决于你的需求。

最后一件事:如果你更喜欢Minitest的某些特定方面,但你更喜欢RSpec的其他方面,那么它们很容易混合在一起。I wrote a blog post about this,如果你感兴趣的话。

票数 75
EN

Stack Overflow用户

发布于 2012-09-18 13:07:10

我用shouldaTest/Unit转换成了spec风格的Minitest,它得到了回报。它消除了样板文件,他们说它还提高了速度。我从来没有真正使用过RSpec。相反,我编写了自己的原始测试和模拟框架(只是为了理解模拟,我在切换到Minitest时放弃了它)。我认为RSpec中的存根/模拟可能更高级,所以如果你已经学过了,就继续使用它。否则,坚持使用Minitest,这将使您能够与不了解RSpec的人协作,比如我。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12470601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档