3
나는 다음과 같은 예외가 직면하고있어 테스트를 작성하는 동안 :스칼라 : 초기화를 모의 고양이 IO 유형 매개 변수와 함께 실패
java.lang.ClassCastException: codegen.java.lang.Object$MockitoMock$641592186 cannot be cast to cats.effect.IO (MyRepositorySpec.scala:19)
specs2
이 테스트 코드를 실행할 때 발생합니다
class MyRepositorySpec extends Specification with Mockito with TestData {
...
val m = mock[MyDAO[IO]].smart
m.createTable returns IO { Right[Throwable, Int](1) } // <- this is line 19
val r = new MyRepository[IO](m)
r.setup.unsafeRunSync() must beNone
...
}
MyDAO
을 다음과 같습니다 :
class MyDAO[M[_] : Monad](val transactor: Transactor[M])(implicit val AE: ApplicativeError[M, Throwable]) extends DataAccessObject[M, MyObject]
및 DataAccessObject
li 이 :
trait DataAccessObject[M[_], T <: Entity]
나는 이것을 고치거나 올바르게 구현하는 방법을 잃었습니다. 어떤 도움을 주시면 감사하겠습니다. 고맙습니다!
감사합니다. exacly, 이제'java.lang.ClassCastException : codegen.java.lang.Object $ MockitoMock $ 546148877을 cats.effect.IO (null : -1)'로 형 변환 할 수 없습니다. 나는 다른 대답도 확인해 볼 것이다. 어쩌면 거기에 몇 가지 힌트를 찾을 수있을 것이다. –
@ RaphaelMäder'org.specs2.mock.Mockito # mock (..) '대신'org.mockito.Mockito.mock (..)'을 사용하면 아무 것도 바뀌나요? (MyOMAID) : org.mockito.Mockito.mock (org.mockito.Mockito.Mockito.mock (org.mockito.Mockito.MET)) '또는'val m : IOMyDAO = org.mockito.Mockito.mock classOf [IOMyDAO], org.mockito.Mockito.RETURNS_SMART_NULLS) ' –
이 작동합니다! 내가 생각하기에 specs2 mockito 패키지의 문제입니다. 나는 그들의 github에 대한 문제를 만들 것입니다. 대단히 감사합니다! 대답을 업데이트하면 받아 들일 것입니다. –