[解決済み] RSpec: 機能仕様と要求仕様の違いは何ですか?
質問
機能仕様のドキュメントから。
フィーチャースペックは、アプリケーションを通して機能のスライスを実行するための高レベルのテストです。 を実行するための高レベルのテストです。このテストは、アプリケーションをその外部インタフェースを通じてのみ駆動する必要があります。 外部インタフェース(通常は Web ページ)を介してのみアプリケーションを動かします。
そして要求仕様のために
<ブロッククオートリクエスト仕様は、Railsの統合テストを薄く包むもので、ルーティングを含むフルスタックを通して動作を駆動するように設計されています。 ルーティングを含むフルスタックを通して動作を駆動するように設計されています。 (Railsによって提供される)を含むフルスタックを通して動作を駆動するように設計されています。 リクエスト仕様を使用すると、次のことができます。
- 単一のリクエストを指定する
- 複数のコントローラにまたがる複数のリクエストを指定する
- 複数のセッションにまたがる複数のリクエストを指定する
私は、機能仕様が カピバラ を使い、要求仕様では使いません。しかし、それは異なる概念を意味するものではありません。
どのように解決するのか?
概念的な違いは、通常はユーザーストーリーをテストしており、すべてのインタラクションはユーザーインターフェイスを介して駆動されるべきであるということです。 そこで、Capybara の出番です。 要求仕様はまだアプリケーションの動作をテストしており、受け入れテストが持つような読みやすさの期待を持っていません。 ですから、この機能は受け入れテストのための改良された構文のためにあるのです。
技術的な違いとしては、feature specがRailsの統合テストを包んでいないのに対し、request specは包んでいることが挙げられます。つまり、リクエスト仕様では、メソッドget、post、put、deleteを使用し、レスポンスに対してアサートすることができます。 feature specでは、すべてのインタラクションをブラウザ経由で行い、visitなどのメソッドを使用し、ページに対してアサートする必要があります。
githubのrspec-railsのソースコードにあるfeature_spec.featureを読むことをお勧めします。お役に立てれば幸いです。
関連
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] AWS S3です。アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレスされている必要があります。
-
[解決済み] rspec 3 - クラスメソッドをスタブ化する
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜ?
-
[解決済み] RSpecとCucumberの違いは何ですか?[クローズド]
-
[解決済み] rake db:migrate db:reset とdb:schema:loadの違いについて
-
[解決済み] RailsのERBにおける<%、<%=、<%#、-%>の違いは何ですか?
-
[解決済み】railsの文字列とtextの違い?
-
[解決済み】RSpecで単一のテスト/仕様ファイルを実行するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] heroku open - no app specified
-
[解決済み] 検索 vs 発見する by vs どこに
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] rspecにおけるassignsの意味
-
[解決済み] railsで':remote => true'はどのように動作するのでしょうか?
-
[解決済み] Railsでグループとカウント
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".