[解決済み] RSpec vs Cucumber (RSpecの話) [終了しました。]
質問
Railsアプリケーションではspecを、Cucumber(旧rspec-stories)ではいつ使えばいいのでしょうか?もちろん両方の仕組みは知っているし、specも積極的に使っている。しかし、Cucumberを使うのはまだ変な感じがします。私の現在の見解は、クライアント向けのアプリケーションを実装していて、システム全体がどのように動くことになっているのかまだ理解していないときに、Cucumberを使うと便利だということです。
しかし、自分自身のプロジェクトを行う場合はどうでしょうか?ほとんどの場合、私はシステムのパーツがどのように相互作用するかを知っています。私がすべきことは、たくさんの単体テストを書くことです。そのとき、Cucumber が必要になる可能性のある状況とは何でしょうか?
そして、対応する2番目の質問として、Cucumberのストーリーを書く場合、私は仕様を書かなければならないのでしょうか?それは同じものの二重テストにならないのでしょうか?
どのように解決するのですか?
もしまだなら、Dan North の素晴らしい記事をチェックするとよいでしょう。 ストーリーには何があるのか? をご覧ください。
私たちはCucumberのストーリーに2つの主な用途を持っています。まず、ストーリーの形式が非常に具体的であるため、製品オーナーが構築したい機能を明確にすることに焦点を当てるのに役立ちます。これは、ストーリーの「会話のためのトークン」であり、ストーリーをコードで実装するかどうかにかかわらず、貴重なものです。次に、プロセスが十分に機能し、完全なストーリーができている場合です。 の前に 第二に、機能が書き始められる前に 完全なストーリーがあるほどプロセスが十分に機能している場合 (日々の現実というよりも、私たちが目指す理想)、受け入れ基準が明確に綴られており、何をどれだけ構築すべきかが正確にわかります。
私たちの Rails の仕事では、Cucumber ストーリーが rspec ユニット テストの代わりになることはありません。この 2 つは手を取り合って行うものです。実際には、ユニットテストはモデルとコントローラの開発を推進し、ストーリーはビューの開発を推進する傾向があり (私たちはビューのために rspec を書かない傾向があります)、ユーザーの視点からアプリケーション全体の良いテストを提供します。
もしあなたが一人で作業をしているのであれば、コミュニケーションの面はそれほど興味はないかもしれませんが、Cucumberから得られる統合テストはそうかもしれません。もしあなたが ウェブラット を利用すれば、Cucumber を書くことは、基本的な機能の多くについて、速く、苦痛なく行うことができます。
関連
-
[解決済み] jest.fn()の機能と使い方を教えてください。
-
[解決済み] フェイク、モッキング、スタビングの違いとは?
-
[解決済み] モッキングとは?
-
[解決済み] Gradleを使用して1つのユニットテストクラスのみを実行する方法
-
[解決済み】Arduinoのコードをユニットテストするにはどうしたらいいですか?
-
[解決済み] JUnitを使ったユニットテストのためのIntelliJ IDEAの設定
-
[解決済み] ユニットテストはゲッターとセッターのために書くべきですか?
-
[解決済み] 抽象クラスのテスト
-
[解決済み] 既存のプロダクションプロジェクトにユニットテストをうまく追加することができますか?もしそうなら、どのように、そして、それは価値があるのでしょうか?
-
[解決済み] Go の testing パッケージを使用してテストのセットアップを行うにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Assert.Fail()はバッドプラクティスとみなされるか?
-
[解決済み] Moqでクラスをモックするとき、特定のメソッドだけをCallBaseする方法は?
-
[解決済み] Gradleを使用して1つのユニットテストクラスのみを実行する方法
-
[解決済み】ユニットテスト、インテグレーションテスト、スモークテスト、リグレッションテストとは何ですか?終了
-
[解決済み] JUnitを使ったユニットテストのためのIntelliJ IDEAの設定
-
[解決済み] Goのモック関数
-
[解決済み] モッキングフレームワークにおけるモッキングとスパイの比較
-
[解決済み] 抽象クラスのテスト
-
[解決済み] スタブとは?
-
[解決済み] Enzyme - How to access and set <input> value?