update.この記事の目的RSpecの取っ掛かりとして、簡単なRSpecを書いて実際に実行してみます。流れの中で説明も多少入っていますが、事細かく何を意味しているかなどの説明はあまりしません。RSpecを実行してみる、体験してみるところに重点をおきます。文字列数字を足し算するメソッドを作ってみましょう。メソッドは文字列の数字を引数(例:"1")に取る、カンマ区切りで複数の文字列の数字が取れる(例:"1,2,3")。空の場合は0を返すRSpecを準備するGemfileにrspecを追加。installを実行。specで作成)の直下にstring_calculator_spec.rbを作成します。これが今回使用するRSpecのファイルです。doendRSpecでは、describeでclass、module、メソッドを記述します。describeブロックはrspecの処理の流れを記述するため、必ず最初に書かれます。rspecでrspecを実行してみます。すると下記のようなエラーが出てくるはずです。実行結果これはまだStringCalculatorというクラスを作成していないからです。StringCalculatorクラスをlibの配下に作成します。StringCalculatorendここで、rspecのファイルにrequireを追加します。rspecを実行します。先ほどのエラーがなくなりました。これでコードを書く準備ができました。実際にRSpecを書いてみるStringCalculatorのaddメソッドは空(empty)を受け入れてます。空を受け取ったら0を返す仕様です。describeにaddを追加してみましょう。endendクラスメソッドのaddを記述するために、また別のdescribeを使います。慣例で、クラスメソッドはドット(.)のprefixを付けて(".add")、インスタンスメソッドにはdash(#)を付けます("#add")。コンテキストブロックではaddメソッドが空だったら0を返すことを記述しています。contextはdescribeと意味的には同じなのですが、コードの可読性を向上させるために使われたりします。itブロックはテストケースを記述するために使います。上記は、addメソッドに空を与えると0を返しますよという例です。「expect(...).to」や「expect(...).not_to」は期待する(しない)結果を定義します。eqlはイコールの意味です(matcherと呼ぶらしい)。matcherはいろいろな書き方があるようです。参考:https://relishapp.com/rspec/rspec-expectations/v/3-1/docs/built-in-matchersRSpecを書き終わったら、クラスにaddメソッドを追記しましょう。rspecを実行します。実行結果RSpecが通りました。1つの数字でaddメソッドをRSpecに通してみるstring_calculator_spec.rbを下記のように書き換えてみましょう。endend実行してみましょう。実行結果1つ目のRSpecで期待する値(expected)は4に対して、受け取った結果の値(got)は0だよ、2つ目のRSpecでは期待する値(expected)は10に対して、受け取った結果の値(got)は0だよって書かれています。ゴールはRSpecを通すことなので、RSpecの対象となっているクラス(ここではStringCalculatorクラス)を修正します。endendRSpecを実行してみてください。下記のようになると無事RSpecが通りました。複数の数字でメソッドを試してみる最後に複数の文字列数字をカンマ区切りで渡した場合(本来のメソッド処理)のケースを試します。endendRSpecを実行しましょう。ここで再度StringCalculatorをクラスを修正します。endendRSpecを実行します。実行結果おまけRSpecはアウトプットの表示方法がいくつかあって、そのうちのひとつにdocumentationフォーマットがあります。documentationとするだけです。requestStockLike4@niitsFollowエバーセンス家族を幸せにすることで、笑顔溢れる社会をつくる。upLoginユーザーは見つかりませんでした。