このブログをご覧のみなさん、こんにちは。

前回、受けた指摘を直して再度レビューしてもらったら、以下の指摘を受けました。

この関数はprivateにした方が見やすいです

単純に今まで public だったメソッドを private にすると、テストが軒並み落ちたので、RSpec で private メソッドをテストする方法を調べたら、以下の記事が引っかかったのですが、引数があるメソッドの書き方が書いていませんでした…。

RSpecでprivateメソッドをテストする

というわけで、いつも通り、原典にあたったところ、引数がある場合のサンプルコードがそのまま書いてあったので、メモとして残しておきます。

やったこと

  • public だったメソッドを private にした
  • テストコードを修正

サンプルコード

class Sample
  def public_method
    "public"
  end

  private
  def private_method(*args)
    "private " + args.join(' ')
  end
end

sample = Sample.new
p sample.send(:private_method, "hello") #=> ""private hello"

参考URL