モデルのプライベートメソッドのテスト方法
model
class Test
def initialize (val1, val2)
validate(val1, val2)
end
private
def validate(val1, val2)
raise xxxxerror unless val1.presnet?
raise yyyyerror unless val2.presnet?
end
end
validateのテストを行いたい
一般的な書き方
@test = Test.new(val1, val2)
@test.send(:validate, val1, val2)
→validateが2回走る?(インスタンス生成時とsendで実行した時
解決方法
①newをstubしてTestクラスのダミーインスタンスを返却?
(ダミーインスタンスの方法がわからないです。。。)
②他の方法でprivateメソッドを直接呼び出す
(呼び出す方法が分からないです。。。)
聞きたいこと
①、②どちらが良いのか
①の場合どうやってダミーインスタンスを返却するのか
②の場合、具体的にどんな書き方で呼び出すのか
を知りたいです。
spec始めたばかりの初心者で申し訳ないですがご教示いただけると嬉しいです。