ホーム
Blog
Rails での動作駆動型の開発とテスト

Rails での動作駆動型の開発とテスト

ラグー・カシャプ
ラグー・カシャプ
2017 年 9 月 19 日
Rails での動作駆動型の開発とテスト

テストはソフトウェア開発の重要な側面です。 多くの開発者が採用しているアプローチの XNUMX つは、 テスト駆動開発 (TDD)。 これは、テストから開始し、テスト カバレッジを向上させながら、それに応じてコードを構築するアプローチです。

TDD を使用するかどうかに関係なく、ほとんどすべての優れた開発者は、自動テストの作成がソフトウェア開発の重要なプロセスであり、そうすべきであることに同意しています。 Ruby on Rails には、自動テストの作成に役立つテスト フレームワークが多数あります。 RSpec、Capybara、Cucumber は、私たちが個人的に話して検討したいフレームワークの一部です。

RSpec:

RSpec は、BDD アプローチの使用を支援するフレームワークの XNUMX つです。 RSpec 内で使用される主要な構文の一部は次のとおりです。

説明する: Describe は、Example Group と呼ばれるテストの集合を説明するために使用されるキーワードです。

It: これは例またはテストを説明するために使用されるキーワードであり、クラス名と文字列引数を受け入れます。

期待する: Expect は期待を定義するために使用されるキーワードです。期待とは、特定の条件が満たされるかどうかを確認することを意味します。

RSpec を設定するには、次のアプローチが必要です。

  1. 追加 gem「rspec-rails」 gem ファイルと bundle install に記述してください。
  2. 仕様書を作成してください。
Rails RSpec ジェム

3. 仕様を実行するコマンドは次のとおりです。 スペック または、IDE を介して実行することもできます。

4. 例えば28行目など、特定の1行だけをテストする必要がある場合は、次のようにします。rspec ./spec/features/user_registers_spec.rb:28

レールRスペック

カピバラ :

Capybara は Ruby on Rails の統合テスト ツールであり、Capybara は Webrat 上に構築されています。 Capybara は RSpec と簡単に統合できます。

カピバラの設置:

追加 宝石 カピバラ gem ファイルと bundle install に記述します。

カピバラのDSLの一部はこんな感じです。

訪問('url')

「メールアドレス」を記入してください

find('パス').click

click_button('ボタン')

きゅうり :

キュウリは3つの部分に分けられます。

  1. 機能
  2. シナリオ
  3. ステップ

機能はシナリオに分割され、シナリオはさらにステップに分割されます

  1. 特徴: フィーチャーは、テスト対象のソフトウェアの特定の機能を説明するユースケースです。
  2. シナリオ: 単一のシナリオは、システムの実行可能なテスト ケースを含む機能を通じたイベント フローです。
  3. ステップ: 一連のステップがシナリオを形成します。そこには、「Given」、「where」、「then」、「but」などのキーワードがいくつかあります。

Cucumberのインストール:

以下のようにgemをgemファイルに追加し、bundle installを実行してください。

グループ:テスト実行

gem 'cucumber-rails', :require => false

#database_cleaner は必須ではありませんが、強くお勧めします

gem 'database_cleaner'

end

それを実行するには、コマンドを実行できます レールはキュウリを生成します: インストール

きゅうりを熊手で走らせる:

キュウリを熊手で集める

熊手を使わずにキュウリを栽培する:

[bundle exec] cucumber

レールキュウリ

作成: 指定された資格情報を持つ新しいユーザーを作成するために使用されるキーワードを作成します。

以下のウェブサイトにアクセスする: 新規ユーザーを作成した後、visitキーワードを使用して、指定されたパスのログインページを表示できるはずです。

ログイン: ログイン ページでは、アプリ内に入るためにログインする必要があります。スクリーンショットに示されているように、ログインの詳細 (電子メールとパスワード) を入力する必要があります。

予想: アプリ内に入ると、言及されている特定の内容が表示されることが期待されます。 これは「未確認のユーザー」に対して行われるテストであるため、「続行する前にメール アドレスを確認する必要があります」のような内容が表示されることが予想されます。

RSpec、Capybara、Cucumber の違い:

Rスペック: RSpec は、単体テスト、機能テスト、統合テストの作成に役立つフレームワークです。 これらのテストは、Rails アプリケーションにリクエストを送信しようとしますが、実際にアプリケーションをエンドツーエンドで実行するわけではありません。

カピバラ: Capybara は、UI なしで WebKit を使用する cucumber 統合テスト フレームワークを強化する Web ドライバーです。 これにより、ブラウザでテストを実行して自動テストを行うことができます。 これは、開発とテストの両方に役立ちます。

キュウリ: Cucumber は統合テスト フレームワークであり、平易な英語のような構文を使用してテストを作成し、自動テストの作成を可能にします。 Cucumber は、Web アプリケーションが何をすべきかを平易な英語で説明する動作駆動開発モデルに従っています。

私たちの投稿をお読みくださいRails 認証フレームワークCancan、Auth-logic、Deviseなど、さまざまなRuby on Rails認証フレームワークの簡単な分析については、こちらをご覧ください。

クライアントの声
アマゾン広告
ChatGPT: 本物か、それともただの流行?
2023 年 2 月 9 日
テクノロジー
Amazon の API でのデータスタックの構築から得た XNUMX つの教訓
2022 年 12 月 1 日
テクノロジー
dblink を使用してデータベース間のデータの一貫性を確保する
2020 年 6 月 4 日
ニュースレターを購読する

eコマース専門家向けの製品アップデート、ウェビナー、ニュースについて学びましょう。

会社のメールアドレス