2

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

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

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

这三个模块有什么区别?

4

3 回答 3

5

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

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

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

MSpec - MSpec 是一个专门的框架,它与 RSpec 的语法兼容,用于基本的东西,如 +describe+、+it+ 块和 +before+、+after+ 动作。MSpec 包含有助于编写多个 Ruby 实现使用的 RubySpecs 的附加功能。

于 2012-01-04T07:53:18.693 回答
3

RubySpecRSpec不同

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

于 2012-01-04T07:46:42.820 回答
3

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

1)rspec

RSpec是您用来测试自己的 ruby​​ 代码的工具。它是Rails 指南中描述的 Rails 内置测试框架的替代品。

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

rake spec

运行整个测试套件,或者运行类似的命令

rspec spec/models/course_spec.rb

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

2) ruby​​spec 和 mspec

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

MSpec 是用于开发 Ruby Specs 的工具。zu rspec 的用法类似。

如果你想编写一个新的 Ruby 解释器,你可以使用 ruby​​spec 来测试你是否做对了。

但是,如果您只是使用 ruby​​ 开发自己的 Web 项目,则不需要 RubySpec。

于 2012-01-04T08:12:31.940 回答