Rspec-writing-specs
RSpec-仕様の作成
この章では、新しいRubyクラスを作成し、独自のファイルに保存し、このクラスをテストするための個別の仕様ファイルを作成します。
まず、新しいクラスでは、 StringAnalyzer と呼ばれます。 単純なクラスで、ご想像のとおり、文字列を分析します。 このクラスには、* has_vowels?というメソッドが1つしかありません。このメソッドは、その名前が示すとおり、文字列に母音が含まれる場合はtrueを、含まれない場合はfalseを返します。 *StringAnalyzer の実装は次のとおりです-
HelloWorldセクションに従っている場合、C:\ rspec_tutorial \ specというフォルダーを作成しました。
hello_world.rbファイルがある場合は削除し、上記のStringAnalyzerコードをC:\ rspec_tutorial \ specフォルダーのstring_analyzer.rbというファイルに保存します。
StringAnalyzerをテストするためのspecファイルのソースは次のとおりです-
これを同じspecディレクトリに保存し、string_analyzer_test.rbという名前を付けます。
cmd.exeウィンドウで、C:\ rspec_tutorialフォルダーに移動し、次のコマンドを実行します:dir spec
次が表示されるはずです-
C:\ rspec_tutorial \ specのディレクトリ
次に、テストを実行します。次のコマンドを実行します:rspec spec
フォルダーの名前を rspec に渡すと、フォルダー内のすべてのspecファイルが実行されます。 この結果が表示されるはずです-
これが発生した理由は、デフォルトでは、 rspec は名前が「_spec.rb」で終わるファイルのみを実行するためです。 string_analyzer_test.rbの名前をstring_analyzer_spec.rbに変更します。 あなたはこのコマンドを実行することで簡単にそれを行うことができます-
さて、もう一度 rspec specを実行すると、次のような出力が表示されるはずです-
さて、string_analyizer.rbで行った変更を保存し、rspec specコマンドを再度実行すると、次のような出力が表示されるはずです-
おめでとうございます、specファイルの例(テスト)は合格です。 母音メソッドを持つ正規表現のバグを修正しましたが、テストは完全ではありません。
has vowelsメソッドを使用してさまざまなタイプの入力文字列をテストする例をさらに追加することは理にかなっています。
次の表は、新しい例で追加できる置換の一部を示しています(ブロックします)。
Input string | Description | Expected result with has_vowels? |
---|---|---|
‘aaa’, ‘eee’, ‘iii’, ‘o’ | Only one vowel and no other letters. | true |
‘abcefg’ | ‘At least one vowel and some consonants’ | true |
‘mnklp’ | Only consonants. | false |
‘’ | Empty string (no letters) | false |
‘abcde55345&??’ | Vowels, consonants, numbers and punctuation characters. | true |
‘423432%%%^&’ | Numbers and punctuation characters only. | false |
‘AEIOU’ | Upper case vowels only. | true |
‘AeiOuuuA’ | Upper case and lower vowels only. | true |
‘AbCdEfghI’ | Upper and lower case vowels and consonants. | true |
‘BCDFG’ | Upper case consonants only. | false |
‘ ‘ | Whitespace characters only. | false |
スペックファイルに追加するサンプルを決定するのはユーザー次第です。 テストする条件は多数ありますが、最も重要な条件のサブセットを特定し、コードを最適にテストする必要があります。
Sr.No. | Option/flag & Description |
---|---|
1 |
-I PATH Rubyのソースファイルを探すときに rspec が使用するロード(必須)パスにPATHを追加します。 |
2 |
-r, --require PATH 仕様に必要な特定のソースファイルを追加します。 ファイル。 |
3 |
--fail-fast このオプションを使用すると、rspecは最初の例が失敗した後に仕様の実行を停止します。 デフォルトでは、rspecは、失敗の数に関係なく、指定されたすべてのspecファイルを実行します。 |
4 |
-f, --format FORMATTER このオプションを使用すると、さまざまな出力形式を指定できます。 出力形式の詳細については、フォーマッターのセクションを参照してください。 |
5 |
-o, --out FILE このオプションは、テスト結果を標準出力ではなく出力ファイルFILEに書き込むようにrspecに指示します。 |
6 |
-c, --color rspecの出力で色を有効にします。 成功例の結果は緑色のテキストで表示され、失敗は赤色のテキストで印刷されます。 |
7 |
-b, --backtrace rspecの出力に完全なエラーバックトレースを表示します。 |
8 |
-w, --warnings rspecの出力にRubyの警告を表示します。 |
9 |
-P, --pattern PATTERN パターンPATTERNに一致する仕様ファイルをロードして実行します。 たとえば、-p“ *.rb”を渡すと、rspecは“ _spec.rb”で終わるファイルだけでなく、すべてのRubyファイルを実行します。 |
10 |
このオプションは、説明にテキストSTRINGを含むすべての例を実行するようにrspecに指示します。 |
11 |
-t, --tag TAG このオプションを使用すると、rspecはタグTAGを含むサンプルのみを実行します。 TAGはRubyシンボルとして指定されていることに注意してください。 詳細については、RSpecタグのセクションを参照してください。 |