Мне трудно подавить вызов метода во время работы над модульными тестами.Пожалуйста, взгляните на то, что я пробовал.
Тестовый класс.
@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()
без какой-либо удачи.Кто-нибудь знает, что я делаю не так?Метод постоянно выполняется.