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

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

4
RSpecコントローラーテスト-空のresponse.body
RSpecでコントローラーをテストすると問題が発生します。response.body呼び出しは常に空の文字列を返します。ブラウザーではすべてが正しくレンダリングされ、キュウリの機能テストでは正しく表示されるようですが、RSpecは毎回失敗します。 response.should render_template('index')問題なく合格するなど、応答オブジェクトに対するその他の期待。 以前にこの問題に遭遇したことがありますか?おそらく、応答htmlは他の方法で取得できますか? バージョンについては、Rails 2.1.0、RSpec 1.2.7。

7
rspecでテストのグループを無効にしますか?
私はdescribesクラスとその中にさまざまcontextsなitブロックを持つさまざまなテスト仕様を持っています。 context一時的に無効にする方法はありますか? 無効にしたいpending "temporarily disabled"内の最上部に呼び出しを追加してみましたcontextが、仕様を実行したときに保留中の問題が表示されましたが、残りのテストは引き続き実行されました。 これは私がちょっと持っていたものです: describe Something context "some tests" do it "should blah" do true end end context "some other tests" do pending "temporarily disabled" it "should do something destructive" do blah end end end しかし、私が言ったように、保留中の呼び出しの下でテストを実行しました。 検索の結果、このメーリングリストのスレッドにたどり着きました。rspecの作成者(?)は、私が実行しているrspec 2で可能であると述べています。うまくいったと思いますが、次のすべてのテストを無効にするという望ましい効果はありませんでした。これは、私がpending電話を見たときに考えていることです。 代替案はありますか、それとも間違っていますか?
102 ruby  rspec 

9
カピバラあいまいさの解決
カピバラのあいまいさを解決するにはどうすればよいですか?何らかの理由で、ページ内に同じ値のリンクが必要ですが、エラーが発生したため、テストを作成できません Failure/Error: click_link("#tag1") Capybara::Ambiguous: Ambiguous match, found 2 elements matching link "#tag1" これが避けられないのは、デザインのせいです。右側にツイート/タグがあり、ページの左側にタグがあるTwitterページを再作成しようとしています。したがって、同じリンクページが同じページに表示されることは避けられません。

6
rspec-2を取得して、テストの失敗に関連する完全なトレースを取得するにはどうすればよいですか?
今私がテストスイートを実行rake specするとエラーが発生します: 1)SegmentsController GET 'index'は機能するはずです 失敗/エラー:「インデックス」を取得 未定義のメソッド「ロケール」# #./spec/controllers/segments_controller_spec.rb:14: 「ブロック(3レベル)内」 エラーがあるのでこれは正常です:) 問題は、トレースがあまり役に立たないことです。segments_controller_spec.rb14行目で故障したことは知っていますが、これは私がテストを呼び出す場所です: ### segments_controller_spec.rb:14 get 'index' 私は、specフォルダー内の部分ではなく、実際の改行と完全なトレースを使用したいと思います。 で実行しても効果--traceはありません。

1
rspec 3-クラスメソッドのスタブ
rspec 2.99からrspec 3.0.3にアップグレードし、インスタンスメソッドを使用するように変換しallow_any_instance_ofましたが、クラスメソッドをスタブする方法がわかりません。私はこのようなコードを持っています: module MyMod class Utils def self.find_x(myarg) # Stuff end end end そして私のrspec 2テストはこれを行います: MyMod::Utils.stub(:find_x).and_return({something: 'testing'}) これを行うRspec 3の方法は何ですか?

9
大規模なRailsアプリケーションでのRSpecテストの高速化
私のRSpecテストには、2,000を超える例を含むRailsアプリケーションがあります。言うまでもなく、これは大規模なアプリケーションであり、テストする必要があることがたくさんあります。この時点でこれらのテストを実行することは非常に非効率的であり、非常に時間がかかるため、新しいビルドをプッシュする前にテストを作成することはほとんどお勧めできません。spec.optsに--profileを追加して、実行時間が最も長いサンプルを見つけました。実行に平均10秒かかるサンプルが少なくとも10個あります。あなたのRSpecエキスパートの間でそれは正常ですか?一例として、10秒は完全に長すぎますか?2,000の例を使用すると、すべてを完全にテストするにはかなりの時間がかかることがわかりますが、現時点では4時間は少し馬鹿げています。 最長の実行例については、どのようなときに見ていますか?ボトルネックを特定してスピードアップを図るために、既存の仕様をトラブルシューティングするにはどうすればよいですか。この時点では、毎分本当に役に立ちます。

4
RSpec:letブロックとbeforeブロックの違いは何ですか?
違いは何であるletとbeforeRSpecの中のブロックは? そして、それぞれをいつ使うのですか? 以下の例で良い方法は何ですか(以前に) let(:user) { User.make !} let(:account) {user.account.make!} before(:each) do @user = User.make! @account = @user.account.make! end 私はこのスタックオーバーフローの投稿を勉強しました しかし、上記のようなアソシエーション関連のletを定義するのは良いことでしょうか?

5
レールでRSpecおよびCapybaraを使用する場合の未定義のメソッド「visit」
カピバラをrspecで動作させることができません。それは私にこのエラーを与えます: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> 私はこれについてたくさんの投稿があることを知っていますが、ソリューションのどれも私のために働いていません。それらのほとんどは/ spec / featuresにない仕様に関係しています-私の仕様です。 最初のエラー: $bundle exec rspec spec F Failures: 1) security signs users in Failure/Error: visit "/sessions/new" NoMethodError: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> # ./spec/features/security_spec.rb:4:in `(root)' Finished in 0.006 seconds 1 example, 1 failure Failed examples: rspec ./spec/features/security_spec.rb:3 # security …

2
spec / rails_helper.rbとspec / spec_helper.rbの違いは何ですか?必要ですか?
Railsチュートリアルを2回目にします。これを入力すると rails generate integration_test static_pages 私が取得spec/rails_helper.rbし、spec/spec_helper.rb代わりにちょうどspec/spec_helper.rb テストを実行すると、前回実行したときよりも長く( "冗長")、遅くなります。2つのファイルの違いは何か、何か問題があったのかと思います。また、rails_helper.rbすべてを台無しにせずにファイルを取り除く方法はありますか?

5
has_manyアソシエーションでFactoryGirlにファクトリーをセットアップする方法
私がセットアップを間違った方法で行っているのなら誰かが教えてもらえますか? has_many.through関連付けを持つ次のモデルがあります。 class Listing < ActiveRecord::Base attr_accessible ... has_many :listing_features has_many :features, :through => :listing_features validates_presence_of ... ... end class Feature < ActiveRecord::Base attr_accessible ... validates_presence_of ... validates_uniqueness_of ... has_many :listing_features has_many :listings, :through => :listing_features end class ListingFeature < ActiveRecord::Base attr_accessible :feature_id, :listing_id belongs_to :feature belongs_to :listing end Rails …

4
カピバラ:IDで入力フィールドに入力する方法
私はこれを持っています: <input class="string optional" id="course_group_courses_attributes_2_name" name="course_group[courses_attributes][2][name]" placeholder="Lengua" size="15" type="text" /> </div> そのフィールドにIDを入力するにはどうすればよいですか?
87 rspec  capybara 


6
Rails 4:テストデータベースをリセットする方法は?
Rails 4を使用していますが、テストのリファクタリングの一部でbeforeフィルターを使用しているため(おそらくトランザクションが原因で)、RSpecテストの一部が失敗していることに気付きました。この投稿では、同様の問題について説明しています。 Railsテストデータベースがいくつかの実行後にクリアされない DatabaseCleaner gemを使用する代わりに、テストデータベースをクリアするためのrakeコマンドはありますか?rake db:test:prepareRails 4では非推奨だと思います。また、 post :create, user: Fabricate.attributes_for(:user) 永続的です。テストデータベースを手動でクリアする必要を回避するためのリファクタリングの代替方法はありますか?

7
Rspecは私のモデルクラスを認識していません。初期化されていない定数エラー
Ruby onRailsアプリケーションでモデルのRspecのテストを書いています。そして、「rspecspec」の起動中にこのエラーが発生します command: /spec/models/client_spec.rb:4:in `<top (required)>': uninitialized constant Client (NameError) Rails4.0.0とRuby2.0.0を使用しています これが私のclient_spec.rbです: require 'spec_helper' describe Client do it 'is invalid without first_name', :focus => true do client = Client.new client.should_not be_valid end end そしてGemfile: source 'https://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '4.0.0.rc1' # Use …

10
すべてのRESTful関数を備えたコントローラーを生成します
すべてのRESTfulアクションをスタブ化したコントローラーを生成しようとしています。私はウィキブックスで読んだことがあります-Rubyon Railsは、コントローラー名を使用してジェネレーターを呼び出すだけで、それを取得できます。それで、私は走りましscript/generate rspec_controller Propertiesたが、空のコントローラーを手に入れました。 他の提案をいただければ幸いです。

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