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

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

6
RSpec vs Cucumber(RSpecストーリー)[終了]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 Railsアプリケーションの仕様を使用する必要があるのはいつですか?もちろん、仕様がどのように機能し、積極的に使用されているかはわかっています。しかし、それでもキュウリを使用するのは変だと感じています。これに関する私の現在の見解は、クライアントにアプリケーションを実装しているときにCucumberを使用すると便利であり、システム全体がまだどのように機能するかを理解していないということです。 しかし、私が自分のプロジェクトをしている場合はどうなりますか?ほとんどの場合、システムの各部分がどのように相互作用するかを知っています。私がしなければならないのは、たくさんの単体テストを書くことだけです。私がキュウリを必要とする可能性のある状況は何ですか? そして、対応する2番目の質問として、キュウリのストーリーを作成する場合、仕様を作成する必要がありますか?同じことの二重テストではないでしょうか?

8
すべてのRubyテストが発生:nil:NilClassの未定義のメソッド「authenticate」
私のテストのほとんどは以下を上げています、そして私はその理由を理解していません。すべてのメソッド呼び出しで「認証」エラーが発生します。「認証」というメソッドがあるかどうかコードをチェックしましたが、そのようなメソッドはありません。 1) Admin::CommentsController handling GET to index is successful Failure/Error: get :index undefined method `authenticate!' for nil:NilClass # ./spec/controllers/admin/comments_controller_spec.rb:9:in `block (3 levels) in <top (required)>' 124) PostsController handling GET for a single post should render show template Failure/Error: get :show, :year => '2008', :month => '01', :day => '01', :slug …

10
rspecリクエストスペックでリクエストヘッダーを設定する方法
コントローラーの仕様では、次のようにhttp acceptヘッダーを設定できます。 request.accept = "application/json" しかし、リクエスト仕様では、「リクエスト」オブジェクトはnilです。どうすればここでそれを行うことができますか? http acceptヘッダーをjsonに設定する理由は、これを実行できるようにするためです。 get '/my/path' これの代わりに get '/my/path.json'

13
カピバラのチェックボックスをチェックする方法は?
RspecとCapybaraを使用しています。 チェックするステップをどのように記述できcheckboxますか?check値で試してみましたが、が見つかりませんcheckbox。実際には同じIDで異な​​る値を持っているため、何をすべきかわかりません これがコードです: <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">

7
Capybara 2.0にアップグレードした後、アイテムリストの最初のリンクをクリックする方法
その場合の最初のリンクをクリックする方法: <div class="item"> <a href="/agree/">Agree</a> </div> <div class="item"> <a href="/agree/">Agree</a> </div> within ".item" do first(:link, "Agree").click end そして私はこのエラーを受け取ります: Capybara::Ambiguous: Ambiguous match, found 2 elements matching css ".item" そしてwithin私なしでこのエラーが出ます: Failure/Error: first(:link, "Agree").click NoMethodError: undefined method `click' for nil:NilClass
125 ruby  rspec  capybara 


1
どのrspecテストに時間がかかっているかを見つける方法
テストの1つ(または2つ)は永遠にかかっているので、それらを最適化したいと考えています。 1000のテストがあるため、各ファイルを実行するのは現実的ではありません。 遅いものを見つける簡単な方法はありますか? これはrspec 1.3です
119 rspec 

7
RSpecと時間を比較する際の問題
Ruby on Rails 4とrspec-rails gem 2.14を使用しています。私のオブジェクトの場合updated_at、コントローラーアクションの実行後に現在の時間とオブジェクト属性を比較したいのですが、スペックが渡されないため困っています。つまり、以下はスペックコードです。 it "updates updated_at attribute" do Timecop.freeze patch :update @article.reload expect(@article.updated_at).to eq(Time.now) end 上記の仕様を実行すると、次のエラーが発生します。 Failure/Error: expect(@article.updated_at).to eq(Time.now) expected: 2013-12-05 14:42:20 UTC got: Thu, 05 Dec 2013 08:42:20 CST -06:00 (compared using ==) スペックを合格させるにはどうすればよいですか? 注:私は以下も試しました(utc追加に注意してください): it "updates updated_at attribute" do Timecop.freeze patch :update @article.reload expect(@article.updated_at.utc).to eq(Time.now) …

1
RSpecとCucumberの違いは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 6か月のRails開発経験があります。私は、認証と承認、およびpostgresql dbで現在使用されているWebアプリケーションを構築しました。 2つ目のRailsアプリケーションに移りますが、今回は、教訓を学んだ後、TDDを使用して開発したいと思います。スケーリングとバグ修正がはるかに簡単だと気付いたからです。開発は遅いですが、長い目で見れば処理がはるかに簡単です。 私はRspecとCucumberについて聞いたことがありますが、それらによって完全に混乱しています。 RSpecとCucumberの違いと、それらの用途について教えてください。 初心者(唯一の開発者でもある)の観点から、テストフレームワークが本当に必要かどうかを知ることも役立ちます。

1
RSpec:機能と要求仕様の違いは何ですか?
Rspecの機能仕様とリクエスト仕様の概念的な違いは何ですか? 機能仕様ドキュメントから: 機能仕様は、アプリケーションを通じて機能のスライスを実行することを目的とした高レベルのテストです。彼らは通常、外部インターフェイス(通常はWebページ)を介してのみアプリケーションを駆動する必要があります。 そしてリクエスト仕様について: 要求仕様は、Railsの統合テストの薄いラッパーを提供し、ルーティング(Railsによって提供される)やスタブなし(ユーザー次第)など、フルスタック全体で動作を駆動するように設計されています。リクエスト仕様を使用すると、次のことができます。 単一のリクエストを指定する 複数のコントローラーにまたがる複数のリクエストを指定する 複数のセッションにわたって複数のリクエストを指定する 機能仕様はカピバラを使用し、要求仕様は使用しないことを知っています。しかし、それは異なる概念にほとんどメリットがありません。

4
RSpecで「should_receive」の回数を増やす方法
私はテストでこれを持っています Project.should_receive(:find).with(@project).and_return(@project) しかし、オブジェクトがそのメソッド呼び出しを2回受け取ったとき、私はしなければなりません Project.should_receive(:find).with(@project).and_return(@project) Project.should_receive(:find).with(@project).and_return(@project) 次のような言い方はありますか Project.should_receive(:find).with(@project).and_return(@project).times(2)


4
RSpec:メソッドが呼び出されたかどうかをテストする方法は?
RSpecテストを書くとき、テストの実行中にメソッドが確実に呼び出されるようにするために、次のようなコードをたくさん書いていることに気づきました(引数として、状態を実際に問い合わせることはできないとしましょう)メソッドが実行する操作はその効果を確認するのが容易ではないため、呼び出し後のオブジェクトの)。 describe "#foo" it "should call 'bar' with appropriate arguments" do called_bar = false subject.stub(:bar).with("an argument I want") { called_bar = true } subject.foo expect(called_bar).to be_true end end 私が知りたいのは、これより優れた構文はありますか?上記のコードを数行に減らすファンキーなRSpecの素晴らしさを逃していますか?should_receiveそれはこれを行うべきであるように聞こえますが、それをさらに読むと、それは正確にそれがすることではないように聞こえます。

3
Railsで懸念をテストする方法
私が持っていることを考えるとPersonable、私のRailsでの懸念がある4アプリケーションfull_nameの方法を、どのように私はこの使用してRSpecのテストに行きますか? Concerns / personable.rb module Personable extend ActiveSupport::Concern def full_name "#{first_name} #{last_name}" end end

16
Factory GirlとRspecのコールバックをスキップします
テスト中、特定の状況でのみ実行したいafter createコールバックを使用してモデルをテストしています。ファクトリからのコールバックをスキップ/実行するにはどうすればよいですか? class User < ActiveRecord::Base after_create :run_something ... end 工場: FactoryGirl.define do factory :user do first_name "Luiz" last_name "Branco" ... # skip callback factory :with_run_something do # run callback end end

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