Java Mockito未返回预期字符串,而是返回模拟对象

Java Mockito未返回预期字符串,而是返回模拟对象,java,junit,mockito,inetaddress,Java,Junit,Mockito,Inetaddress,我正在模拟InetAddress,当我模拟这个时,我得到的是模拟对象,而不是预期的字符串 InetAddress inetAddress = Mockito.mock(InetAddress.class); Mockito.when(inetAddress.getHostName()).thenReturn("test") System.out.printinetAddress.getHostName()); 我认为它应该在控制台中打印test,但它正在打印模拟对象哈希

我正在模拟InetAddress,当我模拟这个时,我得到的是模拟对象,而不是预期的字符串

    InetAddress inetAddress = Mockito.mock(InetAddress.class);
    Mockito.when(inetAddress.getHostName()).thenReturn("test")
    System.out.printinetAddress.getHostName());
我认为它应该在控制台中打印test,但它正在打印模拟对象哈希代码

Mockito.when(inetAddress.getHostName()).thenReturn("test")
在这行代码中,您的意思是,当我调用inetAddress.getHostName()时,返回“test”。您已经完成了这个声明,但是,您没有调用这个mocked方法来查看发生了什么,而是打印mockito对象,它引用了一个地址,就像java中所有其他对象一样。要查看结果,在创建模拟对象后,您应该:

System.out.println(inetAddress.getHostName());

不,如果调用了方法
inetAddress.getHostName()
,则它应该返回test。查看javadoc并查看
Mockito.when(inetAddress.getHostName())。然后返回(“test”)
返回类为
ongoingstubing