java - Mockito/PowerMock - 可以模拟 new MyClass() 吗?

标签 java mockito powermock

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

如何模拟阅读器,或创建新的HibernateCursorItemReader<>()返回一个模拟对象?

最佳答案

你可以包裹new HibernateCursorItemReader<>();使用方法并模拟它,例如:

 HibernateCursorItemReader<Object[]> getReader() {
      return new HibernateCursorItemReader<>();
 }

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

现在,当你想 mock reader 时,模拟getReader()方法并返回您想要的任何内容:

MyObject object = ...; //your original object

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

关于java - Mockito/PowerMock - 可以模拟 new MyClass() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55530513/

相关文章:

java - Selenium WebDriver - 使用 HTLMUnitDriver 时下拉列表仅包含第一个元素

java - 映射到实现接口(interface)的类

java - Spring 集成: Unit test Start/Stop endpoint adapters

java - Powermock验证静态方法中的私有(private)静态方法调用

java - 安卓认证wampserver

JAVA过滤目录内的文件

apache-flex - 可以使用mockito-flex来模拟getter和setter吗?

java - Mockito 中的测试服务

java - 动态更改模拟对象返回值

java - 如何模拟来自第三方库的类的静态调用