微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不使用 PowerMock 模拟新对象创建 Mockito

如何解决不使用 PowerMock 模拟新对象创建 Mockito

我有一个说法 SomeResolver 我需要测试其方法 resolve。该方法正在创建一个我正在尝试 newmock 对象。像下面的东西

public class SomeResolver {
  public String resolve() {
    // need to mock this
    OkHttpClient client = new OkHttpClient().newBuilder().build();
   // so that this
   Response response = client.newCall(someRequest).execute();
   // returns a response I want.
   ...
  }
}

我的测试类 SomeResolverTest 可以模拟 final 类并使用 Mockito v3.9.0,但我无法添加 Powermock 依赖项

有没有办法模拟 new 返回的值?

解决方法

您可以添加 mockito-inline 依赖项并使用 MockedConstruction 来模拟类的新构造。

看看这里: https://javadoc.io/static/org.mockito/mockito-core/3.9.0/org/mockito/Mockito.html#mocked_construction

,

@Vitor Cavalcanti 的回答很好,但对于这个特定用例,我最好使用 mockwebserver 提供的 OkHttp

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>mockwebserver</artifactId>
    <version>${okhttp.version}</version>
    <scope>test</scope>
</dependency>

因为一旦我不断添加测试,我将需要模拟许多与 Web 服务器相关的类,而这个依赖项对我来说就是如此。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。