1. ホーム
  2. testing

[解決済み] gemをテストするためにRSpecをセットアップする(Railsではない)

2022-04-25 15:47:16

質問

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

RSpecを動作させるために次に何をすべきか、何かいいチュートリアルはないでしょうか?

どのように解決するのですか?

現在のベストプラクティスと一致するように、この回答を更新しました。

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

source "https://rubygems.org"
gemspec

を実行したときに、Bundler に gemspec ファイル内を検索して依存関係を調べるように指示します。 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内のgemsのみを読み込むように指示しています。自分のマシンに自分の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