gpt4 book ai didi

java - 如何解决 Mockito 参数匹配问题?

转载 作者:行者123 更新时间:2023-12-01 18:54:36 24 4
gpt4 key购买 nike

我正在 Android 应用程序中测试 dao。当我在 dao.insert(CustomerClass)< 上执行 when 时创建模拟 dao 后,我使用 mockito 进行单元测试 我有以下错误:

when(java.lang.void)in mockito cannot be applied to(void).

@Dao
public interface WListDao {

@Query("SELECT * from wlist_table ORDER BY title ASC")
LiveData<List<WList>> getAllWList();

@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(WList wList);

@Delete
void delete(WList wList);

}

///////////////////////

@Test
public void addNewWListToDb(){
WListDao dao = mock(WListDao.class);
int count =0;
when(dao.insert(any(WList.class))).thenAnswer(count++);
}

最佳答案

语法:

when(mockObject.someMethod(someParameter)).thenAnswer(someAnswer);

...对于 void 方法无效。相反,您必须使用以下语法:

doAnswer(someAnswer).when(mockObject).someMethod(someParameter);

特别注意括号的位置。对于doAnswer 语法,方法调用位于when 括号的外部

请参阅 Mockito 文档 here了解更多信息。

关于java - 如何解决 Mockito 参数匹配问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59686904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com