Rspecのfeature specsとrequest specsの概念の違いは何ですか?機能仕様のドキュメントからRSpec:機能と要求仕様の違いは何ですか?
:
機能のスペックは、アプリケーションを介して機能 のスライスを行使することを意味し、高レベルのテストです。彼らは外部のインターフェイス、通常はウェブページ を介してのみアプリケーションを駆動する必要があります。
と要求仕様のために:
要求スペックがRailsの統合テストの周りに薄いラッパーを提供し、(レールによって提供される) ルーティングを含む、完全なスタックを介して動作を駆動するように に設計されており、スタブすることなく(それはあなた次第です)。要求スペックで は、あなたがすることができます
- が
- 複数のセッションをまたいで複数の要求を指定
- 複数のコントローラ間で複数の要求を指定する単一の要求を指定
私はその機能の仕様を使用して知っていますCapybaraと要求仕様では一致しません。しかし、それは異なる概念にはほとんど当てはまりません。
フィーチャー仕様とリクエスト仕様の両方を使用することをお勧めしますか、それとも十分ですか? (TDDを初めて使っている...) – robertwbradford
私は@robertwbradfordの両方を使用しています。フィーチャー・スペックを使用して、テストで自分の外部を運転する - ユーザー・エクスペリエンスをテストし、単体テストを使用して機能を構築する。応答をテストするためにリクエスト仕様を使用します。 sessions_specでは 'expect(response.status).to eq(200)'や 'expect(response).to render_template(:)のような' it'ブロックに期待通りのGET/loginブロックを記述しているかもしれません。 '' POST /セッション ''、 ''予想(応答).to redirect_to(ユーザ) ''とfollow_redirect! expect(response.body).to include( "Signed in") ' –
あなたはコントローラ仕様も使用していますか?要求仕様でテストするものとコントローラの仕様で通常テストされるものとの間には重複があるようです。 – Ernesto