メインコンテンツまでスキップ

暗黙のドックストリング

RSpecをrspec-coreと一緒に使用する場合、RSpecは例の最後の期待値に基づいて、自動的に例のためのドックストリングを生成することができます。マッチャーがまさに例のドックストリングに書く内容を表現している場合、これは便利ですが、簡単に誤用される可能性もあります。私たちは、ドックストリングの自由な形式がうまく使用されると(特定の動作の「なぜ」を文書化するためなど)、多くの価値を提供すると考えていますが、マッチャーにドックストリングの生成を依存すると、そのような柔軟性を失います。

一般的には、マッチャーが書くであろうドックストリングとまったく一致する場合にのみ、この機能を使用することをお勧めします。それでも、多くのユーザーは完全なドックストリングの明示性を好むため、この機能は注意して使用してください(もしあれば)。

パスする例を実行する

「implicit_docstrings_spec.rb」という名前のファイルがあるとき、以下のようになるようにします:

RSpec.describe "Examples with no docstrings generate their own:" do
specify { expect(3).to be < 5 }
specify { expect([1,2,3]).to include(2) }
specify { expect([1,2,3]).to respond_to(:size) }
end

rspec ./implicit_docstrings_spec.rb -fdocを実行すると、

出力に「is expected to be < 5」というテキストが含まれていることを確認します。

また、出力に「is expected to include 2」というテキストが含まれていることを確認します。

さらに、出力に「is expected to respond to #size」というテキストが含まれていることを確認します。

失敗する例を実行する

「failing_implicit_docstrings_spec.rb」という名前のファイルがあるとき、以下のようになるようにします:

RSpec.describe "Failing examples with no descriptions" do
# description is auto-generated per the last executed expectation
specify do
expect(3).to equal(2)
expect(5).to equal(5)
end

specify { expect(3).to be > 5 }
specify { expect([1,2,3]).to include(4) }
specify { expect([1,2,3]).not_to respond_to(:size) }
end

rspec ./failing_implicit_docstrings_spec.rb -fdocを実行すると、

出力に「is expected to equal 2」というテキストが含まれていることを確認します。

また、出力に「is expected to be > 5」というテキストが含まれていることを確認します。

さらに、出力に「is expected to include 4」というテキストが含まれていることを確認します。

さらに、出力に「is expected not to respond to #size」というテキストが含まれていることを確認します。