如何在scala中模拟Unit方法

hivapdat  于 2022-12-23  发布在  Scala
关注(0)|答案(3)|浏览(124)

我有一个不返回任何值的方法,实际上它处理一个 Dataframe 并注册为临时表,当我尝试模拟该方法进行测试时,我得到以下错误。

is a *void method* and it *cannot* be stubbed with a *return value*!
Voids are usually stubbed with Throwables:
doThrow(exception).when(mock).someVoidMethod();

样本代码:

val mock_testmethod=mock[objectwrapper](Answers.RETURNS_DEEP_STUBS)
  when mock_testmethod.unitmethod(any[String]).thenReturn(dataframe)

我对嘲笑和scala是新手。

ztyzrc3y

ztyzrc3y1#

实际上错误消息已经给出了一些提示。因此您可以:

doNothing().when(mock_testmethod).unitmethod(any[String])
fxnxkyjh

fxnxkyjh2#

以下内容起到了帮助作用:

when(mockedObject.method()).thenReturn(())

thenReturn中的空括号帮助我返回了一个Unit。

ukdjmx9f

ukdjmx9f3#

doNothing().when(mock).someVoidMethod();

相关问题