gem(Railsではない)をテストするためにRSpecを設定する 質問する

gem(Railsではない)をテストするためにRSpecを設定する 質問する

rspec-rails の追加ジェネレーターを使用すると、Rails アプリケーションをテストするために RSpec を設定するのは非常に簡単です。しかし、開発中の gem をテストするために RSpec を追加するのはどうでしょうか? 私は jeweler などのツールは使用していません。Bundler ( bundle gem my_gem) を使用して新しい gem の構造を設定し、*.gemspec を手動で編集しました。また、s.add_development_dependency "rspec", ">= 2.0.0"gemspec に追加して を実行しましたbundle install

RSpec を動作させるために次に何をすべきかを説明した良いチュートリアルはありますか?

ベストアンサー1

現在のベストプラクティスに合わせてこの回答を更新しました。

Bundlerはgem開発を完璧にサポートしています。gemを作成する場合は、のみGemfile に必要なのは次の通りです:

source "https://rubygems.org"
gemspec

これは、実行時に依存関係について gemspec ファイル内を検索するように Bundler に指示しますbundle install

次に、RSpec が gem の開発依存関係であることを確認します。gemspec を次のように編集します。

spec.add_development_dependency "rspec"

次に、spec/spec_helper.rb次のようなものを作成して追加します。

require 'bundler/setup'
Bundler.setup

require 'your_gem_name' # and any other gems you need

RSpec.configure do |config|
  # some (optional) config here
end

最初の 2 行は、Bundler に gemspec 内の gem のみをロードするように指示します。自分のマシンに自分の gem をインストールすると、spec は、別途インストールしたバージョンではなく、現在のコードを使用するように強制されます。

仕様を作成します。例spec/foobar_spec.rb:

require 'spec_helper'
describe Foobar do
  pending "write it"
end

オプション:.rspecデフォルト オプションのファイルを追加し、gem のルート パスに配置します。

--color
--format documentation

最後に、仕様を実行します。

$ rspec spec/foobar_spec.rb

おすすめ記事