Any()方法无法使用Mockito 1.10.9在Java 1.8中进行编译

时间:2017-10-16 07:40:18

标签: junit ant java-8 mockito

我的下面的代码适用于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());

据我所知,如果没有完整的代码,很难建议,但在这里我可以分享一段代码。

1 个答案:

答案 0 :(得分:1)

any(String.class)?如果addField接受String, String,为什么不使用anyString(), anyString()