2017-06-12 43 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 
相关问题