Ale*_*ing 14 java mockito stubbing
如何存储一个方法,以便在给定一个我不期望的值时,它会返回一个默认值?
例如:
Map<String, String> map = mock(Map.class);
when(map.get("abcd")).thenReturn("defg");
when(map.get("defg")).thenReturn("ghij");
when(map.get(anyString())).thenReturn("I don't know that string");
Run Code Online (Sandbox Code Playgroud)
第2部分:如上所述但抛出异常:
Map<String, String> map = mock(Map.class);
when(map.get("abcd")).thenReturn("defg");
when(map.get("defg")).thenReturn("ghij");
when(map.get(anyString())).thenThrow(new IllegalArgumentException("I don't know that string"));
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,最后一个存根优先,因此映射将始终返回默认值.
Ale*_*ing 25
我发现的最佳解决方案是颠倒存根的顺序:
Map<String, String> map = mock(Map.class);
when(map.get(anyString())).thenReturn("I don't know that string");
when(map.get("abcd")).thenReturn("defg");
when(map.get("defg")).thenReturn("ghij");
Run Code Online (Sandbox Code Playgroud)
当默认为抛出异常时,您可以使用doThrow和doReturn
doThrow(new RuntimeException()).when(map).get(anyString());
doReturn("defg").when(map).get("abcd");
doReturn("ghij").when(map).get("defg");
Run Code Online (Sandbox Code Playgroud)
https://static.javadoc.io/org.mockito/mockito-core/2.18.3/org/mockito/Mockito.html#12
归档时间: |
|
查看次数: |
13932 次 |
最近记录: |