我的模拟参考之一在主要阶级中变为无效

发布于 2025-01-31 13:51:14 字数 1009 浏览 8 评论 0原文

对于参考客户端模拟可以准备并在测试方法中使用,但是当涉及MyMethod时,

class MainClass {
    public void myMethod() {
        HttpConnector httpConnector = getHttpConnector(arg);
        CLoseableHttpClient client = httpConnector.getDefaults(input); // client returning null
    }

    private HttpConnector getHttpConnector(String arg) {
        return new HttpConnector(arg)
    }
}

进行null testClass,请为此提供帮助?

@RunWith(PowerMockRunner.class)
class MainClassTest {
    @InjectMocks
    @Spy
    MainClass mainclass;

    public void myMethodTest() {
        HttpConnector httpConnector = Mockito.mock(HttpConnector.class);
        CLoseableHttpClient client = Mockito.mock(CLoseableHttpClient.class);
        Mockito.when(httpConnector.getDefaults(input)).thenReturn(client); // client returning with mock value
        mainclass.myMethod();
    }
}

如果我错过了任何代码中的任何错误或任何错误,请对此

For a reference client mock is prepared and available in test method but when it comes to myMethod the client value becoming null

class MainClass {
    public void myMethod() {
        HttpConnector httpConnector = getHttpConnector(arg);
        CLoseableHttpClient client = httpConnector.getDefaults(input); // client returning null
    }

    private HttpConnector getHttpConnector(String arg) {
        return new HttpConnector(arg)
    }
}

TestClass

@RunWith(PowerMockRunner.class)
class MainClassTest {
    @InjectMocks
    @Spy
    MainClass mainclass;

    public void myMethodTest() {
        HttpConnector httpConnector = Mockito.mock(HttpConnector.class);
        CLoseableHttpClient client = Mockito.mock(CLoseableHttpClient.class);
        Mockito.when(httpConnector.getDefaults(input)).thenReturn(client); // client returning with mock value
        mainclass.myMethod();
    }
}

please help on this if I miss anything or any mistakes in my code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明媚如初 2025-02-07 13:51:14

您可以将私有方法gethtpconnector存根,以返回模拟的httpConnector

尝试此

@Test
public void myMethodTest() {
  HttpConnector httpConnector = Mockito.mock(HttpConnector.class);
  CLoseableHttpClient client = Mockito.mock(CLoseableHttpClient.class);
  Mockito.when(httpConnector.getDefaults(anyString())).thenReturn(client); 
  PowerMockito.when(mainclass, "getHttpConnector").thenReturn(httpConnector);
  mainclass.myMethod();
}

操作,我建议使用最新版本的摩索哥,这是PowerMock的替代方法。

You can stub the private method getHttpConnector to return a mocked httpConnector

try this

@Test
public void myMethodTest() {
  HttpConnector httpConnector = Mockito.mock(HttpConnector.class);
  CLoseableHttpClient client = Mockito.mock(CLoseableHttpClient.class);
  Mockito.when(httpConnector.getDefaults(anyString())).thenReturn(client); 
  PowerMockito.when(mainclass, "getHttpConnector").thenReturn(httpConnector);
  mainclass.myMethod();
}

Furthermore, I suggest using the newest version Mockito, which is an alternative of Powermock.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文