2017-10-17 1 views
0

몇 가지 옵션으로 구성된 사례 클래스가 있습니다. 예를 들어,암시 적 옵션이 모카토 (scala)의 mockito로 모의합니다.

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

이 클래스를 다른 함수로 전달하기 위해 scalatest 사양으로 조롱하려고합니다. 마찬가지로 ...

val clazz = mock[Clazz] 

필드는 null이됩니다.

나중에이 clazz는 circe.io 라이브러리와 함께 JSON으로 직렬화되고 있으며 물론 오류 : scala.MatchError: null이 발생합니다. 옵션이 Some 또는 None이 될 것으로 예상하기 때문입니다.

그럼 내 질문은 ... mockito이 널 대신 옵션을 사용하도록하려면 어떻게해야합니까? 어떤 암시 적 물건이 필요한 것처럼 보입니다.

아니면 완전히 다른 접근 방식일까요?

감사합니다.

+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}")