Java Mockito/PowerMock-是否可以模拟新的MyClass()? public void doSomething(){ //... HibernateCursorItemReader=新的HibernateCursorItemReader(); //... }

Java Mockito/PowerMock-是否可以模拟新的MyClass()? public void doSomething(){ //... HibernateCursorItemReader=新的HibernateCursorItemReader(); //... },java,mockito,powermock,Java,Mockito,Powermock,如何模拟阅读器,或使新建的HibernateCursorItemReader()返回模拟对象?您可以包装new HibernateCursorItemReader()并模拟它,例如: public void doSomething(){ //... HibernateCursorItemReader<Object[]> reader = new HibernateCursorItemReader<>(); //... } 可能的副本无法访问读卡器

如何模拟阅读器,或使新建的
HibernateCursorItemReader()
返回模拟对象?

您可以包装
new HibernateCursorItemReader()并模拟它,例如:

public void doSomething(){
    //...
    HibernateCursorItemReader<Object[]> reader = new HibernateCursorItemReader<>();
    //...
}

可能的副本无法访问读卡器。是否可以将它至少作为doSomething的一个参数来注入它?您可以在链接的潜在副本中使用powermock来返回完全不同的对象,或者也可以使用
Mockito.spy(reader)
,它允许您模拟某些方法
 HibernateCursorItemReader<Object[]> getReader() {
      return new HibernateCursorItemReader<>();
 }

 public void doSomething(){
     //...
     HibernateCursorItemReader<Object[]> reader = getReader(); // use method invocation to get a reader
     //...
 }
MyObject object = ...; //your original object

MyObject spyObject = Mockito.spy(object);
Mockito.doReturn(/*your value*/).when(spyObject).getReader();