2017-06-12 40 views
0

我試圖使用到的Mockito執行單元測試,但測試失敗我正在此:的Mockito:java.lang.ClassCastException:java.lang.Boolean中不能轉換到DataListListener

的java .lang.ClassCastException:java.lang.Boolean的不能轉換到 OnDataListListener

在這裏這條線:mPresenter.getUsers(isLoad, forceUpdate);

測試:

doAnswer(answerVoid(
     (OnDataListListener<List<User>> myCallback) -> myCallback.onSuccess(mList))).when(
     dataInteractor).getUsers(anyBoolean(), any(DataListener.class)); 

    mPresenter.getUsers(isLoad, forceUpdate); 

演示

@Override public void getUsers(boolean isLoad, boolean update) { 
    this.isLoad = isLoad; 
    this.forceUpdate = update; 
    dataInteractor.performgetUsers(update, this);//this refer to the listener 
    } 

DataInteractor:

public void performGetGetUsers(boolean update, OnDataListListener callback) { 
    mDataHandler.getUsers(update, new Observer<List<User>>() { 
.... 

的偵聽器接口:

public interface DataListener<T> { 
    void onSuccess(T data); 

    void onFailure(Throwable e); 
} 
+0

'.getUsers(anyBoolean(),任(DataListener.class))'大概應該是'.getUsers(anyBoolean(),anyBoolean())' – 2017-06-12 13:09:21

+0

你能發佈'DataInteractor#getUsers()'的簽名? – azizbekian

+0

更多代碼 –

回答

0

這是如此怪異,但切換PARAMS解決的問題!

dataInteractor.performgetUsers(update, this);//this refer to the listener 

dataInteractor.performgetUsers(this, update);//this refer to the listener 
相關問題