1
我想使用模擬並檢查傳入模擬的參數是否正確ArrayList<MyModel>
。我已經在MyModel
上定義了布爾型equals
方法,但我找不到使用equals
方法的正確匹配器。我一直在寫的匹配器只比較明顯不同的object_id。我的測試看起來像這樣:Hamcrest ArrayList匹配器
MainActivity activity = mock(MainActivity.class);
MyRequest subject = new MyRequest(activity);
ArrrayList<MyModel> list = ...;
subject.makeRequest();
verify(activity).handleSuccess(argThat(is(list)));
有誰知道將使用布爾等於上MyModel
一個匹配?
爲什麼這不適合你? 'valid(activity).handleSuccess(argThat(equalTo(expected)));' – aim
@aim它比較object_id,並且因爲被調用的參數是一個不同的'ArrayList'實例,所以相等比較返回false。 – trev9065
嗯..我認爲'equalTo'在ArrayList上調用相等,然後它應用在列表的每個元素上(像這樣的'java.util.AbstractList#equals')... – aim