我的下面的代码适用于Java 1.7,而Mockito版本是1.10.19。
@Test
public void populateUsersEmpty() {
// arrange
List<UserDTO> users = new ArrayList<UserDTO>();
// act
requestBuilder.populateUsers(mxsMessageOutMock, users);
// assert
verify(mxsMessageOutMock, times(0)).addRecordSet(CreateNewAlertRequestBuilder.MXS_RECORDSETNAME_USERS);
verify(mxsMessageOutMock, times(0)).addFieldNewRecord(anyString(), anyString());
verify(mxsMessageOutMock, times(0)).addField(anyString(), any());
}
但是当我使用相同版本的Mockito移动到Java 1.8时,它开始显示以下错误(粗体字母)。当我查看Mockito网站时,我发现Mockito 3尚未支持java 8.如果是,那么这是什么解决方案?我应该等待他们的释放还是有办法解决这个问题。我尝试传递AnyString()代替任何(),但我的代码仍然中断。即使anyObject()也无法帮助我。
验证(mxsMessageOutMock,times(0))。addField(anyString(), anyString());
CreateNewAlertRequestBuilderTest.java:436:0::0方法addField(String,String)对于IMXSMessageOut类型不明确 [ant:iajc] [错误7]:验证时出错(mockMessageOut,times(0))。addField(anyString(),any());
据我所知,如果没有完整的代码,很难建议,但在这里我可以分享一段代码。
答案 0 :(得分:1)
any(String.class)
?如果addField接受String, String
,为什么不使用anyString(), anyString()