以下は、Test-First.org の演習 #5 (Silly Blocks) のセクションです。Ruby クラスの準備として、独学で解読しようとしています。
各演習には RSpec '_spec.rb' ファイルが付属しており、ユーザーは対応する Ruby コード '.rb' ファイルを作成し、その中のすべての RSpec テスト (例) が満たされるまで「レーキ」を続ける必要があります。少なくともそれが私の解釈であり、最初の 4 つの演習を完了することができましたが、この演習の RSpec 構文には困惑しました。(残念ながら、私はコーディングにかなり慣れていないだけでなく、間違いなく RSpes にも非常に慣れていないため、初心者向けの適切な RSpec/TDD の紹介をオンラインで見つけることができませんでした)。
したがって、常駐の RSpec 専門家が助けてくれることを願っています。基本的に、コードを書くように指示している次の RSpec 構文が正確に何であるかを知りたいですか?
require "silly_blocks"
describe "some silly block functions" do
describe "reverser" do
it "reverses the string returned by the default block" do
result = reverser do
"hello"
end
result.should == "olleh"
end
...
文字列引数を受け取り、次のように文字列を反転して返す「reverser」というメソッドを作成すると仮定しました。
def reverser(string)
return string.reverse
end
残念ながら、それは明らかに正しくありません - レーキは惨めに失敗します:
some silly block functions
reverser
reverses the string returned by the default block (FAILED - 1)
Failures:
1) some silly block functions reverser reverses the string returned by the def
ault block
Failure/Error: result = reverser do
ArgumentError:
wrong number of arguments (0 for 1)
# ./05_silly_blocks/silly_blocks.rb:3:in `reverser'
# ./05_silly_blocks/silly_blocks_spec.rb:15:in `block (3 levels) in <top (r
equired)>'
「デフォルトのコードブロック」を渡すことと関係があると思われますが、それを構造化する方法がわかりません。この演習では、他にも多くの方法を記述できますが、最初の方法を明確にすることができれば、残りを解決できると思います。
感謝します、Danke sehr、Muchas gracias!! :)