質問

次のモッキングコードが機能しない理由は何ですか?

org.hibernate.SessionFactory sessionFactory = Mockito.mock(SessionFactory.class);
org.hibernate.Session session = Mockito.mock(Session.class);
Mockito.when(sessionFactory.getCurrentSession()).thenReturn(session);

TheRreturnステートメントはコンパイルされません。 "inovinging -stubbingのタイプのメソッド(セッション)は、引数(セッション)には適用されません。」しかし、なぜ適用されないのですか?輸入品が正しく把握されていると思います。

役に立ちましたか?

解決

これは、タイプが実際に返されたためです SessionFactory.getCurrentSession()org.hibernate.classic.Session, 、サブタイプです org.hibernate.Session. 。モックを正しいタイプに変更する必要があります。

org.hibernate.classic.Session session = Mockito.mock(org.hibernate.classic.Session.class);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top