2017-10-17 13 views
0

私はいくつかのオプションからなるケースクラスを持っています。たとえば、暗黙的なオプションは、scalaのmockitoでモックします。

case class Clazz(field: Option[String] = None) 

私は別の関数に渡すためにスケーラブルな仕様でこのクラスを模擬しようとしています。同様に...

フィールドはnullです。

この後、このclazzはcirce.ioライブラリでJSONにシリアル化されていますが、もちろんエラー:scala.MatchError: nullが発生します。これは、オプションがSomeまたはNoneのいずれかになることを期待しているためです。

私の質問は... mockitoでは、nullの代わりに[オプション]に[なし]を使用するにはどうすればよいですか。何か暗黙のものが必要なようです。

おそらく全く異なるアプローチですか?

ありがとうございます!

+0

これらのフィールドをデフォルトで「なし」にしましたか? 'case class Clazz(field:Option [String] = None)' – Tanjin

+0

はい。それらはすべてデフォルトになっています。それを言いたくて申し訳ありません。 –

答えて

0

あなたは答えがどうなるかを定義する必要があります。少なくとも、私はそのような組み込み機能をmockitoで知らない。このようにして、テストクラスが拡張されるときにorg.scalatest.mockito.MockitoSugar

// Configurated mock 
val clazzMock = mock[Clazz] 
when(clazzMock.field).thenReturn(None) 
println(s"Configurated mock. Field: ${clazzMock.field}") 

// Non-configurated mock 
println(s"Non-configuarted mock. Field: ${mock[Clazz].field}") 
関連する問題