如何在没有Rails的情况下使用RSpec?

B S*_*ven 46 ruby tdd bdd rspec

使用没有Rails的RSpec在Ruby中执行TDD的过程是什么?

我需要一个Gemfile吗?它只需要rspec吗?

Ruby 1.9.3

Ere*_*bih 65

过程如下:

从控制台安装rspec gem:

gem install rspec
Run Code Online (Sandbox Code Playgroud)

然后使用以下内容创建一个文件夹(我们将其命名为root):

根/ my_model.rb

根/规格/ my_model_spec.rb

#my_model.rb
class MyModel
  def the_truth
    true
  end
end

#spec/my_model_spec.rb

require_relative '../my_model'

describe MyModel do
  it "should be true" do
    MyModel.new.the_truth.should be_true
  end
end
Run Code Online (Sandbox Code Playgroud)

然后在控制台运行

rspec spec/my_model_spec.rb
Run Code Online (Sandbox Code Playgroud)

瞧!


Kyl*_*yle 41

从您的项目目录中...

gem install rspec
rspec --init
Run Code Online (Sandbox Code Playgroud)

然后在spec目录中编写specs并通过它运行它们

rspec 'path to spec' # or just rspec to run them all
Run Code Online (Sandbox Code Playgroud)


Now*_*ker 5

周围的工作流程gem install rspec有缺陷。始终使用Bundler和Gemfile来确保一致性,并避免项目在一台计算机上正常运行而在另一台计算机上失败的情况。

创建您的Gemfile

source 'https://rubygems.org/'

gem 'rspec'
Run Code Online (Sandbox Code Playgroud)

然后执行:

gem install bundler
bundle install
bundle exec rspec --init
Run Code Online (Sandbox Code Playgroud)

以上将为您创建.rspecspec/spec_helpers.rb

现在,在中创建示例规范spec/example_spec.rb

describe 'ExampleSpec' do
  it 'is true' do
    expect(true).to be true
  end
end
Run Code Online (Sandbox Code Playgroud)

并运行规格:

% bundle exec rspec
.

Finished in 0.00325 seconds (files took 0.09777 seconds to load)
1 example, 0 failures
Run Code Online (Sandbox Code Playgroud)

  • 我几乎不会将这几行称为“矫枉过正”,并且会建议任何人使用 bundler,如这个出色的答案所示! (2认同)