当前位置:   article > 正文

java when thenreturn_java – Mockito when().thenReturn()抛出nullpointerExceptions

mockito when thenreturn nullpointer

我正在尝试使用Mockito创建一个从Mock对象返回的Mock对象.具体来说,我正在尝试模拟我的程序可以用来检索IP地址的PlayerConnection对象.

您可以找到有关此PlayerConnection对象here的更多信息.它返回一个InetSocketAddress,然后可以返回一个InetAddress,它可以返回一个带有播放器IP的String.但是我无法做到这一点,因为我的第一个(class.function()).thenReturn(returnVariable)抛出一个NullPointerException.这是我的代码:

/**

* Creates a partial mock of a connection that can return an ip address.

*

* @param String

* The IP to return when the connection gets asked.

* @return

*/

private PlayerConnection newConnection(String ipString)

{

PlayerConnection playerConnection = mock(PlayerConnection.class);

InetSocketAddress inetSocketAddress = mock(InetSocketAddress.class);

InetAddress inetAddress = mock(InetAddress.class);

when(playerConnection.getAddress()).thenReturn(inetSocketAddress);

when(inetSocketAddress.getAddress()).thenReturn(inetAddress);

when(inetAddress.getHostAddress()).thenReturn(ipString);

return playerConnection;

}

这里是堆栈跟踪,发生在(playerConnection.getAddress()).thenReturn(inetSocketAddress):

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE!

ruleResponseTest(com.github.heartsemma.communitywall.ConnectionChecks.RuleManagerTest) Time elapsed: 0.001 sec <<< ERROR!

java.lang.NullPointerException

at java.net.InetSocketAddress$InetSocketAddressHolder.access$500(InetSocketAddress.java:56)

at java.net.InetSocketAddress.getAddress(InetSocketAddress.java:334)

at com.github.heartsemma.communitywall.ConnectionChecks.RuleManagerTest.newConnection(RuleManagerTest.java:99)

at com.github.heartsemma.communitywall.ConnectionChecks.RuleManagerTest.ruleResponseTest(RuleManagerTest.java:44)

编辑:

我已将我的存根切换到doReturn().when().function()而不是when().thenReturn()来停止NullPointerExceptions,它确实如此,但现在我从Mockito获得自定义的UnfinishedStubbingExceptions.

有用的错误代码说我在某个地方有一个未完成的存根,但我不知道它在哪里.第二个doReturn()方法发生错误.

/**

* Creates a partial mock of a connection that can return an ip address.

*

* @param ipString The IP to return.

*

* @return A PlayerConnection object that can return a Host Address of the ipString but nothing else.

*/

private PlayerConnection newConnection(String ipString)

{

PlayerConnection playerConnection = mock(PlayerConnection.class);

InetSocketAddress inetSocketAddress = mock(InetSocketAddress.class);

InetAddress inetAddress = mock(InetAddress.class);

doReturn(inetSocketAddress).when(playerConnection).getAddress();

doReturn(inetAddress).when(inetSocketAddress).getAddress();

doReturn(ipString).when(inetAddress).getHostAddress();

return playerConnection;

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/274464?site
推荐阅读
相关标签
  

闽ICP备14008679号