MINITEST和Rspec的(闭合)(Minitest and Rspec [closed])

2019-07-31 16:02发布

我刚才看了Railscast用于MINITEST。

问:使用RSpec的VS MINITEST用于测试Rails应用程序的优点和缺点? 哪些功能我会失去从转换到RSpec的MINITEST?

Answer 1:

我的RSpec的开发者之一,并且从未使用过MINITEST,所以阅读这个答案的时候把我的偏见考虑。

总的来说,RSpec的的动力来自于它具体化这么多的测试概念为第一类对象的事实。 其中,Test ::单位和MINITEST用简单的方法来作出断言,RSpec的使用支持否定,自我描述,更一流的匹配对象。 RSpec的的例子是支持丰富的元数据的第一类对象; MINITEST /规格编译it块分解成简单的方法,它不支持同一种丰富的元数据。 RSpec的支持使用第一级构建体(例如共享组)接受参数指定共享行为; W / MINITEST你可以使用继承或混入重新使用测试 ,但它不具有相同的排序一流的支持。 RSpec的有一个明确的格式化API(也有使用它的许多第三方格式化); 我不知道有相同的排序一流的格式化API的MINITEST的。

至于谁是不断运行的测试和实践TDD整天一个人,我找到电源的RSpec给了我是非常有用的。 很多人觉得这是矫枉过正,不过,并没有给额外的抽象的认知增加成本。

下面是一些特定功能的RSpec有,我相信MINITEST缺乏:

  • before(:all)挂钩(注意,这是应该很少使用的RSpec的电力用户的功能,我只用它几次在多年使用的RSpec的)
  • around(:each)
  • 共享示例组
  • 共享上下文
  • 丰富的元数据支持,可以被用来控制其实例得到运行,这示例组共享的上下文获取包含在,其示例组模块得到混入多。
  • 适用范围广嘲笑特征瓦特/ rspec的-嘲笑的综合支持; MINITEST ::模拟就简单得多了,并在比较有限。
  • RSpec的有rspec的火 ,这是真棒。

使用MINITEST的好处:

  • 它的建成为标准库,所以你不需要安装任何额外的费用。
  • 它可以在使用def test_blahit 'blah'的风格。
  • 该代码库是非常小的,简单的。 RSpec的,凭借它的年龄和附加功能,是比较大的。
  • MINITEST加载速度比快的RSpec(它是关于4的代码文件相比,有许多文件在3颗宝石传播RSpec的) - 但要注意的RSpec是慢无手段; 在我的大多数项目的这些日子里,我从RSpec的测试反馈下的第二(而且往往在500毫秒)。

总的来说,这是一个有点像西纳特拉与Rails的,我认为MINITEST和RSpec是根据您的需要都精细的选择。

最后一两件事:如果有MINITEST的具体方面你更喜欢,但其他的事情你喜欢RSpec的更好,他们可以很容易地混合和匹配。 我写了一篇博客文章中针对此 ,如果你有兴趣。



Answer 2:

我转换从SPEC-风格MINITEST Test/Unitshoulda ,并付出总有回报。 它摒弃了样板和他们说,这也提高了速度。 我从来没有真正使用RSpec的。 相反,我写我自己原始的测试和模拟框架(只是为了理解嘲讽的目的,我放弃了在切换到MINITEST)。 我认为,在RSpec的磕碰/嘲讽可能是更先进的,所以如果你已经学会了,就继续使用它。 否则,坚持与MINITEST,这将使你与人无知的RSpec的,比如我合作。



文章来源: Minitest and Rspec [closed]