greengold:
私は、特定のパラメータのためのメソッド呼び出しを模擬し、他の人のための本当のメソッドを呼び出したいです。私が持っています:
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@SpringBootTest(classes = AppConfig.class)
@ActiveProfiles("mvntest")
public class OKMMoveMergeTest {
@MockBean
private FolderDAO folderDAO;
...
@Test
public void callDocCreateEp() throws Exception {
Mockito.doCallRealMethod().when(folderDAO).getFoldersHierarchy(any(EHierarchyType.class));
Mockito.doReturn(screwedHierarchy).when(folderDAO).getFoldersHierarchy(EHierarchyType.CLIENT_DOC);
...
}
}
これで、私はのための嘲笑結果を得るfolderDAO.getFoldersHierarchy(EHierarchyType.CLIENT_DOC)
が、私は私のget他のパラメータとそれを呼び出すしようとすると、NullPointerException
私は間違って何をやっているか、どのように私は、特定のパラメータのメソッド呼び出しをスタブする必要がありますか?
JUnitの-木星-API:5.4.0
JUnitの-木星エンジン:5.4.0
春ブート:2.1.4.RELEASE mockito-JUnitの-木星:2.23.0
yevgeniy.batulin:
あなたの豆の代わりに、モックのためにスパイを作成する必要があります。あなたは@SpyBeanアノテーションを使用することができます。これは、スパイを作成し、コンテキストにそれをしない@MockBean同じようにそれを置くだろう。スパイの場合、あなたはその背後にある実際のオブジェクトを持っていますが、必要な場合は、モックを持っていたかのようにあなたはまだ動作を無効にすることができるようになります。例については以下を参照してください。記事を