Looking for rspec Answers? Try Ask4KnowledgeBase
Looking for rspec Keywords? Try Ask4Keywords

rspecrspecを使い始める


備考

RSpecは、Rubyプログラムを特定してテストするために使用されるBDDツールです。クラスとメソッドを指定してテストするために、つまりユニットテストのために使用されます。

rspecの宝石は、RSpecの3つの部分をもたらすメタ - 宝石です。これらの3つの部分も、このドキュメントを構成する方法です。

rspec-rails gemもあります。これは、Railsアプリケーションで使用されるクラスのタイプをテストするためのサポートと、ユーザの視点からアプリケーションをテストするフィーチャ仕様(アクセプタンステスト)のサポートをサポートするRSpecを拡張します。

RSpecとrspec-railsの公式ドキュメントは、ここにあります: https ://www.relishapp.com/rspec

簡単なRSpecの例

greeter.rb(プロジェクトのどこにでも):

class Greeter
  def greet
    "Hello, world!"
  end
end
 

spec / greeter_spec.rbの場合:

require_relative '../greeter.rb'

RSpec.describe Greeter do
  describe '#greet' do
    it "says hello" do
      expect(Greeter.new.greet).to eq("Hello, world!")
    end
  end
end
 

だから私たちのファイル構造は次のようになります:

$ tree .
.
├── greeter.rb
└── spec
    └── greeter_spec.rb

1 directory, 2 files
 

出力

$rspec greeter_spec.rb
Finished in 0.00063 seconds (files took 0.06514 seconds to load)
1 example, 0 failures
 

RSpecの用語では、ファイルはGreeter 「仕様」であり、 it ブロックは「例」です。 expect のラインはexpect です。期待が満たされても何も起こらず、テストに合格します。そうでない場合、テストは失敗します。

この例では、 describe ブロックをネストすることもできます。この場合、 greet メソッドがGreet クラスの一部であることを伝えるためです。 #greet# は、 greet がインスタンスメソッド(クラスメソッドの場合は '。'とは対照的)であることを示すgreet 慣例に過ぎません。 RSpecは文字列をまったく解釈しないので、別の文字列を使用するか、そのdescribe ブロックを完全に省略することができます。

RSpecのインストール

RSpec gemをインストールする最も一般的な方法は、 Bundlerを使用することです。この行をアプリケーションのGemfile 追加してください:

gem 'rspec'
 

次に、 bundle を実行して依存関係をインストールします。

$ bundle
 

あるいは、gemを手動でインストールすることもできます:

$ gem install rspec
 

gemをインストールしたら、次のコマンドを実行します。

rspec --init
 

これにより、テスト用のspec フォルダと、次の設定ファイルが作成されます。

  • specファイルを格納するspec ディレクトリ
  • デフォルト構成オプションを含むspec/spec_helper.rb ファイル
  • デフォルトのコマンドラインフラグを持つ.rspec ファイル