Как смоделировать внутренние вызываемые методы? - PullRequest
0 голосов
/ 18 января 2019

Ниже приведен код, для которого я пытаюсь написать текст, и добавил, что я сделал, но получаю нулевой указатель exp

public boolean doVersionLimitCheck(Long mneId) throws DMMException {
    CALogUtil.getInstance().logMethodEntry("doVersionLimitCheck",
            ConfigArchiveManagerImpl.class.getName());
    boolean status = false;
    status = validateArchivedVersions(mneId);
    CALogUtil.getInstance().logDebug("Version Roll over status::" + status);
    CALogUtil.getInstance().logMethodExit("doVersionLimitCheck",
            ConfigArchiveManagerImpl.class.getName());
    return status;
}

для этого я сделал, как показано ниже.

@Test
public void testDoVersionLimitCheck() {

    Long mneId=Long.valueOf("123");
    ConfigArchiveManagerImpl impl = new ConfigArchiveManagerImpl();
    try {
        Mockito.doReturn(true).when(Mockito.mock(ConfigArchiveManagerImpl.class)).validateArchivedVersions(Mockito.anyLong());
    } catch (DMMException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    try {
        impl.doVersionLimitCheck(mneId);
    } catch (DMMException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

1 Ответ

0 голосов
/ 18 января 2019

Вам нужно шпионить за SUT, чтобы протестировать один метод и издеваться над другим:

@Test
public void testDoVersionLimitCheck() {

    Long mneId=Long.valueOf("123");
    ConfigArchiveManagerImpl impl = Mockito.spy(new ConfigArchiveManagerImpl());
    try {
        Mockito.doReturn(true).when(impl ).validateArchivedVersions(Mockito.anyLong());
    } catch (DMMException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...