Rspec-filtering
RSpec-フィルタリング
RSpecフィルタリングはRSpecメタデータに基づいているため、このセクションを読む前にRSpecメタデータのセクションを読むことをお勧めします。
スペックファイルがあり、2つのタイプのテスト(例)が含まれていると想像してください:ポジティブ機能テストとネガティブ(エラー)テスト。 このように定義しましょう-
さて、上記のテキストを「filter_spec.rb」というファイルとして保存し、このコマンドで実行します-
次のような出力が表示されます-
ここで、このファイルの肯定的なテストのみを再実行したい場合はどうでしょうか? または、負のテストのみですか? これは、RSpec Filtersで簡単に行えます。 上記のコードをこれに変更します-
変更をfilter_spec.rbに保存し、このわずかに異なるコマンドを実行します-
これで、次のような出力が表示されます-
--tag positiveを指定することで、RSpecに、ポジティブメタデータ変数が定義されたサンプルのみを実行するように指示しています。 このようなコマンドを実行することで、負のテストでも同じことができます-
これらは単なる例であり、任意の名前でフィルターを指定できることに注意してください。
RSpecフォーマッター
フォーマッタにより、RSpecはさまざまな方法でテストからの出力を表示できます。 このコードを含む新しいRSpecファイルを作成しましょう-
さて、これをformatter_spec.rbというファイルに保存し、このRSpecコマンドを実行します-
次のような出力が表示されるはずです-
今、同じコマンドを実行しますが、今回はこのようにフォーマッタを指定します-
今回は同じ出力が表示されるはずです-
その理由は、「進行中」フォーマッターがデフォルトのフォーマッターだからです。 次に別のフォーマッタを試して、このコマンドを実行してみてください-
今、あなたはこの出力が表示されるはずです-
ご覧のとおり、出力は「doc」フォーマッタとは大きく異なります。 このフォーマッタは、ドキュメントのようなスタイルで出力を提示します。 テストに失敗したときに、これらのオプションがどのように見えるか疑問に思われるかもしれません(例)。 formatter_spec.rb のコードを次のように変更してみましょう-
期待値* expect(1 + 1).to eq(1)*は失敗します。 変更を保存し、上記のコマンドを再実行します-
さて、ドキュメントフォーマッタを試して、このコマンドを実行してください-
さて、失敗したテストでは、この出力が表示されるはずです-
失敗した例
rspec ./formatter_spec.rb:3#いくつかのテストを実行するときにRSpec Formatterがどのように機能するかを示すための仕様ファイル。テストは通常、expect()メソッドを少なくとも1回呼び出します。
RSpec Formatterは、テスト結果の表示方法を変更する機能を提供します。独自のカスタムFormatterを作成することも可能ですが、それはより高度なトピックです。