1. ホーム
  2. unit-testing

[解決済み] RSpec vs Cucumber (RSpecの話) [終了しました。]

2022-06-14 01:50:10

質問

Railsアプリケーションではspecを、Cucumber(旧rspec-stories)ではいつ使えばいいのでしょうか?もちろん両方の仕組みは知っているし、specも積極的に使っている。しかし、Cucumberを使うのはまだ変な感じがします。私の現在の見解は、クライアント向けのアプリケーションを実装していて、システム全体がどのように動くことになっているのかまだ理解していないときに、Cucumberを使うと便利だということです。

しかし、自分自身のプロジェクトを行う場合はどうでしょうか?ほとんどの場合、私はシステムのパーツがどのように相互作用するかを知っています。私がすべきことは、たくさんの単体テストを書くことです。そのとき、Cucumber が必要になる可能性のある状況とは何でしょうか?

そして、対応する2番目の質問として、Cucumberのストーリーを書く場合、私は仕様を書かなければならないのでしょうか?それは同じものの二重テストにならないのでしょうか?

どのように解決するのですか?

もしまだなら、Dan North の素晴らしい記事をチェックするとよいでしょう。 ストーリーには何があるのか? をご覧ください。

私たちはCucumberのストーリーに2つの主な用途を持っています。まず、ストーリーの形式が非常に具体的であるため、製品オーナーが構築したい機能を明確にすることに焦点を当てるのに役立ちます。これは、ストーリーの「会話のためのトークン」であり、ストーリーをコードで実装するかどうかにかかわらず、貴重なものです。次に、プロセスが十分に機能し、完全なストーリーができている場合です。 の前に 第二に、機能が書き始められる前に 完全なストーリーがあるほどプロセスが十分に機能している場合 (日々の現実というよりも、私たちが目指す理想)、受け入れ基準が明確に綴られており、何をどれだけ構築すべきかが正確にわかります。

私たちの Rails の仕事では、Cucumber ストーリーが rspec ユニット テストの代わりになることはありません。この 2 つは手を取り合って行うものです。実際には、ユニットテストはモデルとコントローラの開発を推進し、ストーリーはビューの開発を推進する傾向があり (私たちはビューのために rspec を書かない傾向があります)、ユーザーの視点からアプリケーション全体の良いテストを提供します。

もしあなたが一人で作業をしているのであれば、コミュニケーションの面はそれほど興味はないかもしれませんが、Cucumberから得られる統合テストはそうかもしれません。もしあなたが ウェブラット を利用すれば、Cucumber を書くことは、基本的な機能の多くについて、速く、苦痛なく行うことができます。