获取`void方法只能在void方法上做nothing`

问题描述

我有一个方法add,它返回Unit。它调用java方法,该方法返回void

def add(transaction:distributedTransaction,emailToken:UserToken,user:User,mutationCondition:MutationCondition = new PutIfNotExists()):Unit = {
....
transaction.put(putToken)
}

void put(Put put);

我正在按如下方式模拟此方法

donothing().when(servicesTestEnv.mockUserTokenTransactionRepository).add(servicesTestEnv.mockdistributedTransaction,servicesTestEnv.userTestEnv.userToken,servicesTestEnv.testEnv.user)

但是我遇到错误Only void methods can donothing()!

如何解决错误

我怀疑此问题是由于Java使用voidScala使用Unit引起的,因为此代码有效

when(servicesTestEnv.mockUserTokenTransactionRepository.add(servicesTestEnv.mockdistributedTransaction,servicesTestEnv.testEnv.user))
    .thenAnswer(invocation=> Unit)

以上是模拟的正确测试方法,还是有使用donothing()进行测试的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)