Java Can';JOOQ中的t模拟存储过程

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

我试图模拟我用JOOQ生成的存储过程。我不知道如何替换mock,并且正在抛出一个nullptr异常

这是密码

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();

     }
}