[解決済み] gemをテストするためにRSpecをセットアップする(Railsではない)
質問
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
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] CMake + makeで1つのテストだけを実行する
-
[解決済み] 再試験の強制、またはテストキャッシングの無効化
-
[解決済み] カスタム属性を使用しているHTML要素からテキストを取得するには?
-
[解決済み] レッドボックステスト、イエローボックステスト、グリーンボックステストとは何ですか?
-
[解決済み] モックとスタブの違いは何ですか?
-
[解決済み] gemのインストールで --no-ri --no-rdoc をデフォルトにするには?
-
[解決済み】プロジェクト内のすべてのテストを「go test」する方法は?
-
[解決済み] 受入テストと機能テストの違いは?
-
[解決済み] PylonsでNoseを使って単体テストを実行する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] IntelliJでプロジェクト全体に「コマンドラインを短くする」メソッドを設定する方法
-
[解決済み] CMake + makeで1つのテストだけを実行する
-
[解決済み] デュレーションテストとは何ですか?
-
[解決済み] Amazon EC2インスタンスでVirtualBoxを実行できますか?
-
[解決済み] 「Intellijでテストを実行すると、「テストイベントを受信できませんでした。
-
[解決済み] 再試験の強制、またはテストキャッシュの無効化
-
[解決済み] ユニットテスト、機能テスト、受け入れテスト、統合テストの違いは何ですか?[クローズド]
-
[解決済み】コードカバレッジとその測定方法について教えてください。
-
[解決済み】プロジェクト内のすべてのテストを「go test」する方法は?
-
[解決済み] 受入テストと機能テストの違いは?