下記コードのようにmock
メソッドの引数に設定情報を渡してやると、入れ子のフィールドをモックできます。
import org.specs2.mock.Mockito
object Main extends App with Mockito {
import org.mockito.Answers
import org.mockito.Mockito.withSettings
case class Hoge(fuga: Fuga)
case class Fuga(fuge: String)
val hoge = mock[Hoge](withSettings.defaultAnswer(Answers.RETURNS_DEEP_STUBS))
hoge.fuga.fuge returns "f u g e"
println(hoge.fuga.fuge) // f u g e
}
(もし仮に単にval hoge = mock[Hoge]
と書いてhoge
を定義してやると、Null Pointer Exceptionになります。)