与红宝石规格混淆

问题描述 投票:2回答:3

spec / rspec和mspec之间的区别是什么?在ruby spec home中,它说我们应该使用mspec命令。

但其他一些人说它应该是'spec kind_of_spec.rb'。

有人说我们应该使用'rspec'。

这三个模块的区别是什么?

ruby specifications mspec-ruby
3个回答
3
投票

这些是不同的工具/项目,名称非常相似但目标完全不同!

1)rspec

RSpec是一个用于测试自己的ruby代码的工具。它是Rails Guide中描述的Rails内置测试框架的替代品。

如果切换到rspec,则运行该命令

rake spec

运行整个测试套件,或运行一个命令

rspec spec/models/course_spec.rb

运行测试的一个特定部分。

2)rubyspec和mspec

RubySpec是一个为Ruby编程语言编写可执行规范的项目。需要这样的规范,因为有几个不同的ruby解释器:Matz的Ruby解释器(称为MRI)是事实上的标准,但也有Rubinius,JRuby,IronRuby,MacRuby,HotRuby,......

MSpec是用于开发Ruby规范的工具。它的使用类似于zu rspec。

如果你想编写一个新的Ruby解释器,你可以使用rubyspec测试你是否做得对。

但是如果你只是使用ruby来开发自己的web项目,那么RubySpec并不是必需的。


5
投票

简而言之 - 这些模块具有相同的目标(测试),但可以实现不同类型的工具集。

RubySpec。 RubySpec是一个为Ruby编程语言编写可执行规范的项目。

RSpec - RSpec是Ruby程序员的行为驱动开发工具。 BDD是一种软件开发方法,它结合了测试驱动开发,域驱动设计和验收测试驱动规划。 RSpec帮助您完成TDD的TDD部分,重点关注TDD的文档和设计方面。

MSpec - MSpec是一个与RSpec语法兼容的专用框架,用于基本的东西,比如+ describe +,+ it + blocks + + +之前+ + +之后+动作。 MSpec包含有助于编写多个Ruby实现所使用的RubySpec的其他功能。


3
投票

RubySpecRSpec不同

从RSpec2开始,您应该使用rspec <path>命令而不是rake spec来运行您的规范

© www.soinside.com 2019 - 2024. All rights reserved.