RSpecテストの解剖学


Ruby on Railsを使用してアプリケーションを構築する場合は、rspecテストに遭遇したかもしれません.rspecはRubyプログラムをテストするためのテストツールです.開発者がソフトウェアをテストするのを助けるので、それは振舞い駆動開発に続きます.
rspecはいくつかのキーワードを使用します.最も重要なのは、
記述
のトップレベルで使用される
  • はクラス名かストリング
  • を受け入れます
    It
  • 特定の例
  • を参照する一般的な単語
    期待する
    結果を定義するために使用される
  • は、EQまたはNOQへのEQ、またはNOTCUMから
  • に結合することができる
    主題
  • オブジェクトは
  • でテストされています
    RSpecテストを書く練習をするために、Railsプロジェクトを作成するつもりです.この単純なプロジェクトは、ユーザーがフォームに自分の名前を入力することを検証します.
    $ rails new test-names 
    
    RSpec宝石を宝石ファイルに加えてください.gem 'rspec-rails'アプリケーションでは、specフォルダーを作成します.
    $ mkdir spec
    
    Specでは、モデルフォルダを作成します.
    $ mkdir models
    
    「モデル」フォルダ内で、ユーザーのspecファイルを作成します.
    $ touch user_spec.rb 
    
    最後に、このファイルはテストファイルです.
    RSpec.describe User, type: :model do
    [...]
    end 
    
    ここでは、ユーザークラスのrspecテストを宣言します.
    subject {
       described_class.new(first_name: "John",
                           last_name: "Doe")
     }
    
    
    サブジェクトはオブジェクト(この場合、最初と最後の名前を持つユーザー)のために立ちます.
    it "is valid with a first name" do
       expect(subject).to be_valid
     end
    
     it "is valid with a last name" do
       expect(subject).to be_valid
     end
    
    
    
    最後に、テストケースの2つを作成します.テストは、itキーワードを使用し、テストの説明が続きます.次に、Expeptionメソッドを使用して、対象に渡される検証を行います.
    テストを実行するには、トップレベルのディレクトリに移動して実行するにはbundle exec rspec端末で.
    ここでテスト全体です.
    RSpec.describe User, type: :model do
     subject {
       described_class.new(first_name: "John",
                           last_name: "Doe")
     }
    
     it "is valid with a first name" do
       expect(subject).to be_valid
     end
    
     it "is valid with a last name" do
       expect(subject).to be_valid
     end
    
    end
    
    
    テストは実行され、例、失敗、および保留中のテストの数を表示します.
    もちろん、テストのポイントは、ユーザーの行動やソフトウェアの動作を計画することです.開始時に失敗することを確認するテストを構築することにより、我々はより堅牢なコードを作成し、うまくいけばユーザーの相互作用を計画することができます.