暗黙のドックストリング
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」というテキストが含まれていることを確認します。