PowerMockito подавляет sqlj.runtime.ref.DefaultContext ConnectionContextImpl getExecutionContext метод - PullRequest
0 голосов
/ 15 февраля 2019

Мне трудно подавить вызов метода во время работы над модульными тестами.Пожалуйста, взгляните на то, что я пробовал.

Тестовый класс.

@RunWith(PowerMockRunner.class)
@PrepareForTest({SyncLog.class, ConnectionContext.class, ConnectionContextImpl.class, ExecutionContext.class, DefaultContext.class, LoggingConfigurator.class, DbProperties.class, StackoverFlow.class, EventBase.class, SQLJConnectionBase.class, RuntimeRefErrors.class})
public class StackoverFlowTest {

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(LoggingConfigurator.class));
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(DbProperties.class));
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(SQLJConnectionBase.class));
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(EventBase.class));
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(RuntimeRefErrors.class));
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(ExecutionContext.class));
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(DefaultContext.class));
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(ConnectionContextImpl.class));
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(ConnectionContext.class));
        PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(SyncLog.class));
        PowerMockito.suppress(PowerMockito.method(DefaultContext.class, "getExecutionContext"));
        PowerMockito.suppress(PowerMockito.method(ConnectionContextImpl.class, "getExecutionContext"));
        PowerMockito.suppress(PowerMockito.method(ConnectionContext.class, "getExecutionContext"));

        StackoverFlow spyTmp = spy(StackoverFlow.class);
        spyTmp.loadData("stackoverFlow.txt", false);
    }
}

Хорошо, в этом методе loadData сделан следующий вызов метода (getExecutionContext()), и яЯ хотел бы обойти это, подавив его.

sqlj.runtime.ref.DefaultContext __sJT_cc = Ctx;
if (__sJT_cc == null)
    sqlj.runtime.error.RuntimeRefErrors.raise_NULL_CONN_CTX();

Object tmp2 = sqlj.runtime.ExecutionContext.raiseNullExecCtx();
ExecutionContext tmp1 = __sJT_cc.getExecutionContext();
Object tmp3 = __sJT_cc.getExecutionContext().getOracleContext();

Я попробовал все, чтобы остановить выполнение оператора __sJT_cc.getExecutionContext() без какой-либо удачи.Кто-нибудь знает, что я делаю не так?Метод постоянно выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...