タグ付けされた質問 「rspec」

RSpecは、Rubyプログラミング言語用のビヘイビア駆動開発(BDD)フレームワークであり、JBehaveに触発されました。JMockに基づく独自の完全に統合されたモッキングフレームワークが含まれています。フレームワークはドメイン固有言語(DSL)と考えることができ、自然言語仕様に似ています。

10
RSpec let()を使用する場合
beforeブロックを使用してインスタンス変数を設定する傾向があります。次に、これらの変数を私の例全体で使用します。最近出会いましたlet()。RSpecのドキュメントによると、それは ...メモ化されたヘルパーメソッドを定義します。値は、同じ例の複数の呼び出しにわたってキャッシュされますが、例全体ではキャッシュされません。 これは、beforeブロックでインスタンス変数を使用する場合とどう違うのですか?また、いつlet()vs を使用する必要がありますbefore()か?
447 ruby  rspec 

16
単一のRSpecテストを実行する方法は?
次のファイルがあります。 /spec/controllers/groups_controller_spec.rb そのスペックだけを実行するためにターミナルのどのコマンドを使用しますか?また、コマンドを実行するディレクトリは何ですか? 私のgemファイル: # Test ENVIRONMENT GEMS group :development, :test do gem "autotest" gem "rspec-rails", "~> 2.4" gem "cucumber-rails", ">=0.3.2" gem "webrat", ">=0.7.2" gem 'factory_girl_rails' gem 'email_spec' end スペックファイル: require 'spec_helper' describe GroupsController do include Devise::TestHelpers describe "GET yourgroups" do it "should be successful and return 3 items" do …

14
RSpecで単一のtest / specファイルをどのように実行しますか?
たとえば、編集中の1つのファイルに対して、1つのスペックファイルのテストを実行できるようにしたいと考えています。 rake specすべてのスペックを実行します。私のプロジェクトはRailsプロジェクトでrake spec:docはないため、機能しません。 これが重要かどうかはわかりませんが、これが私のディレクトリ構造です。 ./Rakefile ./lib ./lib/cushion.rb ./lib/cushion ./lib/cushion/doc.rb ./lib/cushion/db.rb ./spec ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb
282 ruby  testing  rspec 

6
Rspec:「array.should == another_array」ですが、順序は関係ありません
配列を比較して、同じ要素が任意の順序で含まれていることを確認したいことがよくあります。RSpecでこれを行う簡潔な方法はありますか? 許可されない方法は次のとおりです。 #to_set 例えば: expect(array.to_set).to eq another_array.to_set または array.to_set.should == another_array.to_set 配列に重複したアイテムが含まれている場合、これは失敗します。 #sort 例えば: expect(array.sort).to eq another_array.sort または array.sort.should == another_array.sort 配列要素が実装されていない場合、これは失敗します #<=>
235 ruby  testing  rspec 

8
iOSテスト/仕様TDD / BDDと統合および受け入れテスト
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 iPhoneのビヘイビア駆動開発に使用するのに最適なテクノロジーは何ですか?そして、これらのテクノロジーの健全な使用を実証するいくつかのオープンソースのサンプルプロジェクトは何ですか?ここに私が見つけたいくつかのオプションがあります: ユニットテスト テスト::ユニットスタイル 「iOS開発ガイド:ユニットテストアプリケーションとその他のOCUnitリファレンス」で説明されているOCUnit / SenTestingKit。 例:iPhoneUnitTests、Three20 キャッチ GHUnit Mac向けGoogleツールボックス:iPhoneユニットテスト RSpecスタイル キウイ(これには、あざけりと期待も付いています) 杉 器用なiOS-Acceptance-Testing仕様に示されているUIオートメーション付きのJasmine 受け入れ試験 セレンスタイル UIオートメーション(デバイスで動作) UIオートメーション機器ガイド UIオートメーションリファレンスドキュメント Tuneup js -UIAutomationで使用するためのクールなライブラリ。 自動化スクリプトへのユーザーインターフェイスアクションのキャプチャ Cucumber(JavaScriptで記述)を使用してUIオートメーションを駆動することが可能です。これは素晴らしいオープンソースプロジェクトでしょう。次に、Gerkinを記述してUIオートメーションテストを実行します。とりあえず、コメントとしてガーキンと書いてみます。 更新:ズッキーニフレームワークは、キュウリとUIオートメーションをブレンドしているようです!:) 古いブログ投稿: Alex VollmerのUIオートメーションチュートリアル O'Reilly Answers UIオートメーションチュートリアル Adi SaxenaのUIオートメーションチュートリアル UISpecRunnerによるUISpec UISpecはGoogle Codeのオープンソースです。 UISpecには包括的なドキュメントがあります。 FoneMonkey キュウリのスタイル フランクとiCuke(キュウリに基づいてiPhoneトークを満たしています) フランクGoogleグループはよりもはるかに活性を有するiCuke Googleグループを。 Frankはデバイスとシミュレーターの両方で実行されますが、iCukeはシミュレーターでのみ実行されます。 フランクはiCukeのステップ定義よりも包括的なステップ定義のセットを持っているようです。そして、フランクはまた、彼らのウィキにステップ定義大要を持っています。 私はiCukeとFrankをマージすることを提案しました(MerbとRailsがマージした方法に似ています)。iOS向けのCucumberが同じ共通の目標を持っているからです。 KIF(機能性を保つ)ことでスクエア Zucchini Frameworkは、テストの記述にCucumber構文を使用し、ステップ定義にCoffeeScriptを使用します。 追加 …


15
リンクするホストがありません!:hostパラメータを指定するか、default_url_options [:host]を設定してください
私は今、約90分間グーグルしてきましたが、まだこれに対する答えはありません。どこに設定しdefault_url_optionsますか?config.action_mailer.default_url_optionsこれと同じバグを別の場所で解決するように設定しましたが、RSpec仕様内でURLヘルパーを使用しようとすると、このエラーが発生します。default_url_optionsが設定されることを期待している場所がわかりません。 Failure/Error: listing_url(listing).should match(/\/\d+-\w+$/) RuntimeError: Missing host to link to! Please provide :host parameter or set default_url_options[:host] # ./spec/routing/listing_routing_spec.rb:9:in `block (3 levels) in <top (required)>' このコードはemails / ActionMailerとは関係がなく、たまたまパスではなくURLが必要なだけです。 何か案は?

14
rspecでのモジュールのテスト
rspecでモジュールをテストする際のベストプラクティスは何ですか?いくつかのモデルに含まれるモジュールがいくつかありますが、今のところは、各モデルのテストが重複しているだけです(違いはほとんどありません)。乾かす方法はありますか?
175 ruby  unit-testing  rspec 



4
GSpec(Railsではない)をテストするようにRSpecを設定する
rspec-railsのジェネレーターを追加すると、RailsアプリケーションをテストするためのRSpecを設定するのが非常に簡単になります。しかし、開発中に宝石をテストするためのRSpecを追加するのはどうでしょうか?私は宝石商やそのような道具を使っていません。Bundler(bundle gem my_gem)を使用して新しいgemの構造を設定し、*。gemspecを手動で編集しました。またs.add_development_dependency "rspec", ">= 2.0.0"、gemspecに追加してを行いましたbundle install。 RSpecを機能させるために次に何をすべきかについての良いチュートリアルはありますか?
154 testing  rubygems  rspec  gem  rspec2 

5
新しいRailsアプリを作成するときに、test-unitではなくRSpecを使用するようにRailsに指示するにはどうすればよいですか?
私がしているtest-unitインストールし、rspec(一緒にインストールされ-core、-expectations、-mocksおよび-railsバージョン2.6.xの)。コマンドを実行すると、ではなく、テストスタブファイルの生成rails new fooに使用test-unitされますrspec。 代わりに、rspecを使用してテストを生成するようにRailsに指示できるオプションはありますか?

13
RSpecを使用してJSON応答を確認する方法
コントローラに次のコードがあります。 format.json { render :json => { :flashcard => @flashcard, :lesson => @lesson, :success => true } RSpecコントローラーテストで、特定のシナリオが成功のJSON応答を受信することを確認したいので、次の行を作成しました。 controller.should_receive(:render).with(hash_including(:success => true)) ただし、テストを実行すると、次のエラーが発生します。 Failure/Error: controller.should_receive(:render).with(hash_including(:success => false)) (#<AnnoController:0x00000002de0560>).render(hash_including(:success=>false)) expected: 1 time received: 0 times 応答を間違ってチェックしていますか?

4
カピバラを使用してフォームフィールドが正しく事前入力されていることを確認するにはどうすればよいですか?
カピバラで問題なく記入できる適切なラベルのあるフィールドがあります: fill_in 'Your name', with: 'John' 入力する前に値を確認したいのですが、わかりません。 fill_in次の行の後に追加した場合: find_field('Your name').should have_content('John') そのテストは失敗しますが、ページを保存することで確認したように、直前の入力は機能しました。 何が欠けていますか?
145 forms  rspec  capybara 

5
カピバラを使用してクエリ文字列で現在のパスを取得する方法
ページのURLは、カピバラのメソッド/people?search=name を使用している間だけcurrent_path返さ/peopleれました。 current_path.should == people_path(:search => 'name') しかし、それは言って失敗します expected: "/people?search=name" got: "/people" どうすれば合格できますか?これを行う方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.