我的下面的代碼適用於Java 1.7,Mockito版本是1.10.19。任何()方法無法在Java 1.8中使用Mockito進行編譯1.10.9
@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()也沒有幫助我。
verify(mxsMessageOutMock,times(0))。addField(anyString(),anyString());
CreateNewAlertRequestBuilderTest.java:436:0::0的方法激活addField(字符串,字符串)是不明確的類型IMXSMessageOut [螞蟻:iajc] [錯誤7]:在錯誤校驗(mockMessageOut,倍(0) ).addField(anyString(),any());
據我所知,它很難建議沒有完整的代碼,但在這裏我可以分享一段代碼。
@Eugene,我同意你的看法,但這樣做會讓我在其他地方的代碼出錯,所以我很困惑如何解決這個問題。 – user3534759
您是否嘗試升級到最新的Mockito 2.x.x?它可以解決你的問題。 –
這看起來不像錯誤消息的正確引用。單一的方法不能含糊不清。有關模糊方法(調用)的錯誤消息應命名候選人。除此之外,我不明白你爲什麼在最後發佈另一種方法。你是說這個源代碼是錯誤信息的一部分嗎? – Holger