私はRubyの初心者であり、この質問に長い間悩まされていました。
RSpecファイルで、と書くBook.should <do something>
と、should
キーワードは何ですか?それはBookオブジェクトのメンバーですか?どうしてBookオブジェクトのメンバーになったのですか?それともRubyの構成ですか?関数ですか?関数またはメンバーの場合、これの定義はどこにありますか?
ロード時に、RSpecはRubyに認識されているすべてのオブジェクトに含まれているモジュールにモジュールを含めます。Kernel
したがって、shouldメソッドをすべてのオブジェクトで使用できるようにすることができます。そのため、should
はキーワード(、、、、など)if
ではなく、通常のメソッドです。class
end
ミックスインは、ロード中またはRSpec中に「パッチイン」されるため、RSpecコンテキストでのみ使用可能であることに注意してください。
私はここでこれと同様の質問に答えました。基本的に:
Holgerの答えがより明確になる可能性があり、最初に混乱しshould
たのは、コードを次のようにするために、メソッドの命名に関する通常の規則のほとんどを破ることです(たとえば、メソッドについては何も説明していません)。全体が一種の文として読まれます。
そのため、ライブラリは、一連のテストを作成するだけでなく、人間が読める形式の仕様に似た方法でテストを通じてアプリケーションを説明するように促しています。