我被困在試圖驗證偵聽器實現的參數。Mockito:驗證泛型列表作爲參數
從Listener
接口的方法:
public void settingsAdded(List<EditJobSettings> addedSettings);
我想要做的是檢查,如果預期的對象出現在列表中。
測試(左出不相關的代碼):
@Test
public void initiallyAddColorAndAlignTile() {
mSettings.add(mColorSetting);
// This method calls the listener method and passes the added settings as argument
mStatusNotifier.notifySettingsUpdates(mSettings);
// Here I get stuck: this does not compile, but I can't find how to work around this. Is there a way to specify a generic list as argument?
ArgumentCaptor<List<EditJobSettingsSet>> argument = (List<EditJobSettingsSet>) ArgumentCaptor.forClass(List.class);
verify(mEditJobListener).settingsAdded(argument.capture());
assertTrue(argument.getValue().contains(mColorSettings));
}
預先感謝。
我沒有用註解測試過它,但是我在最後測試了代碼,並且它不能編譯。 –
@JBNizet我知道註釋的作品,並且是處理Captors中複雜泛型的首選方法。我不記得那些不安全的演員是如何原諒的,或者有多少人可以通過演員陣容來抵抗'(ArgumentCaptor)'和/或使用'@ SuppressWarnings'。將測試當我有一個IDE方便;在此期間更新答案。 –
對於遲到的反應感到抱歉,最終發現了它。 @Captor非常酷,還不知道。感謝你的回答! – bas