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

シェアする

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

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

Rスペック:

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

説明する: Describe は、サンプル グループとして知られるテストのコレクションを説明するために使用されるキーワードです。

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

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

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

  1. Add gem「rspec-rails」 gem ファイルに追加してバンドルインストールします。
  2. スペックを書きます。
Rails RSpec ジェム

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

4. 28 行目などの 28 行だけをテストする必要がある場合は、rspec ./spec/features/user_registers_spec.rb:XNUMX のように実行できます。

レールRスペック

カピバラ :

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

カピバラのインストール:

Add 宝石 カピバラ gem ファイルとバンドルインストールで

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

訪問('url')

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

find('パス').click

click_button('ボタン')

きゅうり :

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

  1. 特徴
  2. シナリオ
  3. ステップ

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

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

キュウリのインストール:

次のように gem ファイルに gem を追加し、バンドル インストールを実行します。

グループ:テストする

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

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

gem 'database_cleaner'

end

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

Rake でキュウリを実行する:

キュウリを熊手で集める

熊手なしでキュウリを実行する:

[バンドル実行] キュウリ

レールキュウリ

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

参照してください。 新しいユーザーを作成すると、訪問キーワードを使用してパスが記載されているログイン ページが表示されるはずです。

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

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

RSpec、Capybara、Cucumber の違い:

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

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

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

私たちの投稿を読んでください」Rails 認証フレームワークCancan、Auth-logic、Devise などのさまざまな Ruby on Rails 認証フレームワークの簡単な分析については、「」を参照してください。

提言

ニュースレターを購読する

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