형식화 된 값 클래스를 ID로 사용하는 것은 Scala에서 일반적인 패턴입니다. 그러나 Mockito는 값 클래스를 인수로 사용하는 메서드를 스텁하는 경우 문제가있는 것으로 보입니다. 아래 예제에서 실제 값이있는 첫 번째 스텁은 정상적으로 작동하지만 두 번째 스텁은 인수 매처를 사용하여 NullPointerException을 발생시킵니다.값 클래스 인수를 사용하는 Mockito 스터 빙 메소드가 NullPointerException과 함께 실패합니다.
내가 발견 한 유일한 참조는 this question이지만 여기에 나와있는 해결책은 작동하지 않습니다. 누구나이 해결책이나 해결 방법을 알고 있습니까?
버전은 다음과 같습니다 org.mockito : mockito-모든 : 1.10.19 및 org.specs2 : specs2_2.11 : 2.4.15
import org.specs2.mutable.Specification
import org.specs2.matcher.Matchers
import org.specs2.mock.Mockito
case class ID[T](val id:Long) extends AnyVal
trait DAO[T]{
def get(id:ID[T]):T
}
class MockitoIDStubTest extends Specification with Mockito with Matchers{
"Mockito" should{
"properly stub with argument value" in {
val m = mock[DAO[String]
m.get(ID[String](1)).returns("abc")
m.get(ID[String](1)) must_== "abc"
}
"properly stub with argument matcher" in {
val m = mock[DAO[String]
m.get(any[ID[String]]).returns("abc")
m.get(ID[String](1)) must_== "abc"
}
}
}
[정보] Mockito해야
[info] + 인수 값이있는 올바르게 스텁
[정보]! (MockitoIDStubTest.scala : 20)
[오류] MockitoIDStubTest $$ anonfun $ 1 $$ anonfun $ $ 5 $$ anonfun은 $ $ 6.apply를 적용한 적용 (MockitoIDStubTest 정상적으로 인자 정합과
[오류] NullPointerException이 스터브. 스칼라 : 20)
는 스피 또한 mockito 솔루션을 찾고 http://stackoverflow.com/questions/28140793/scala-specs2-mocking-a-trait-method-returns-always-nullpointer-exception 같은 동일한 문제가 될 수 – MeiSign