1

以下は、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!! :)

4

1 に答える 1