Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Junit Any()方法无法在带有Mockito 1.10.9的Java 1.8中编译_Junit_Ant_Java 8_Mockito - Fatal编程技术网

Junit Any()方法无法在带有Mockito 1.10.9的Java 1.8中编译

Junit Any()方法无法在带有Mockito 1.10.9的Java 1.8中编译,junit,ant,java-8,mockito,Junit,Ant,Java 8,Mockito,我下面的代码适用于Java1.7,Mockito版本为1.10.19 @Test public void populateUsersEmpty() { // arrange List<UserDTO> users = new ArrayList<UserDTO>(); // act requestBuilder.populateUsers(mxsMessageOutMock, users); // assert ver

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

}
@测试
公共无效populateUsersEmpty(){
//安排
列表用户=新建ArrayList();
//表演
requestBuilder.populateUsers(mxsMessageOutMock,用户);
//断言
验证(mxsMessageOutMock,times(0)).addRecordSet(CreateNewAlertRequestBuilder.MXS_RECORDSETNAME_用户);
验证(mxsMessageOutMock,times(0)).addFieldNewRecord(anyString(),anyString());
验证(mxsMessageOutMock,times(0)).addField(anyString(),any());
}
但当我使用相同版本的Mockito迁移到Java1.8时,它开始显示以下错误(粗体字母)。当我查看Mockito网站时,我发现Mockito3还没有支持Java8。如果是,那么解决方案是什么?我应该等待他们的释放还是有办法解决这个问题。我尝试传递AnyString()来代替any(),但代码仍然中断。即使是anyObject()也帮不了我

验证(mxsMessageOutMock,times(0)).addField(anyString(),anyString()

CreateNewAlertRequestBuilderTest.java:436:0::0方法addField(String,String)对于IMXSMessageOut类型不明确 [ant:iajc][error 7]:验证时出错(mockMessageOut,times(0)).addField(anyString(),any())


我知道没有完整的代码很难提出建议,但这里我可以分享一段代码。

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

@Eugene,我同意你的看法,但这样做会在其他地方给我的代码带来错误,所以我不知道如何修复。你是否尝试升级到最新的Mockito 2.x.x?这可能会解决您的问题。这看起来不像是错误消息的正确引用。一个方法不能含糊不清。关于不明确方法(调用)的错误消息应命名候选方法。除此之外,我不明白你为什么在最后发布了另一种方法。你是说这个源代码是错误信息的一部分吗?@Eugene,这对我很有用!。谢谢