Java Can';JOOQ中的t模拟存储过程
我试图模拟我用JOOQ生成的存储过程。我不知道如何替换mock,并且正在抛出一个nullptr异常 这是密码Java Can';JOOQ中的t模拟存储过程,java,unit-testing,mockito,jooq,Java,Unit Testing,Mockito,Jooq,我试图模拟我用JOOQ生成的存储过程。我不知道如何替换mock,并且正在抛出一个nullptr异常 这是密码 public class MyClass { public void findResults() { DSLContext create = DSL.using(ConnectionManager.getConnection(), SQLDialect.MYSQL); SpFindResultsByOrder findResultsByOrder
public class MyClass {
public void findResults() {
DSLContext create = DSL.using(ConnectionManager.getConnection(), SQLDialect.MYSQL);
SpFindResultsByOrder findResultsByOrder = new SpFindResultsByOrder(); // Exception!
findResultsByOrder.execute(create.configuration());
}
}
试验
上下文 当我试图模拟我的JOOQ存储过程对象时,我得到一个nullptr异常。这是从
AbstractRoutine
继承的生成对象。
在SpFindResultsByOrder findResultsByOrder=新的SpFindResultsByOrder()代码>,我的模拟没有被替换。而是生成了一个实际的SPFindResultsBylder,我得到了一个nullptr异常
我的例外情况如下所示:
方法引发了“java.lang.NullPointerException”异常。无法计算com.example.generated.routines.SpFindResultsByOrder.toString()
my StoredProcess中的架构对象抛出:
方法引发了“java.lang.NullPointerException”异常。无法计算com.example.generated.MyDatabase.toString()
@PrepareForTest({DSL.class, ConnectionManager.class})
@PowerMockIgnore("javax.management.*")
@RunWith(PowerMockRunner.class)
public class JOOQTest {
@Test
public void shouldFindResultsByOrder() extends Exception {
mockStatic(DSL.class);
mockStatic(ConnectionManager.class);
Connection cnxn = mock(Connection.class);
DSLContext create = mock(DSLContext.class);
SpFindResultsByOrder sp = mock(SpFindResultsByOrder.class);
when(ConnectionManager.getConnection()).withAnyArguments().thenReturn(cnxn);
when(DSL.using(cnxn,SQLDialect.MYSQL).thenReturn(create);
whenNew(SpFindResultsByOrder.class).withAnyArguments().thenReturn(sp);
MyClass mc = new MyClass();
mc.findResults();
}
}