Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Mockito:单元声明丢弃的非单元值_Scala - Fatal编程技术网

Scala Mockito:单元声明丢弃的非单元值

Scala Mockito:单元声明丢弃的非单元值,scala,Scala,有人能解释一下这是什么意思吗 错误:(32,28)丢弃的非单位值 dataFrameReader.load()只调用了一次 我看过一些在线文章,我不太明白 这是我使用Scala Mockito从ScalaTest中提取的代码片段 ... val dataFrameReader = mock[DataFrameReader] dataFrameReader.format(anyString) shouldReturn dataFrameReader dataFrameReader.opti

有人能解释一下这是什么意思吗

错误:(32,28)丢弃的非单位值
dataFrameReader.load()只调用了一次

我看过一些在线文章,我不太明白

这是我使用Scala Mockito从ScalaTest中提取的代码片段

 ...
 val dataFrameReader = mock[DataFrameReader]
 dataFrameReader.format(anyString) shouldReturn dataFrameReader
 dataFrameReader.option(anyString, anyString) shouldReturn dataFrameReader
 dataFrameReader.load() wasCalled once
如果我取出
wasCalled一次
,它就可以正常工作了

我不明白这意味着什么,因为我在load()返回的内容上调用“wasCalled”,并且
wasCalled一次
解析为一个单元

这里我遗漏了什么?

假设您是在模仿Apache Spark,那么它的返回类型实际上是
DataFrame
,而不是
Unit

def load(): DataFrame
def wasCalled(t: Times)(implicit order: VerifyOrder): Unit
另一方面,的返回类型实际上是
单位

def load(): DataFrame
def wasCalled(t: Times)(implicit order: VerifyOrder): Unit
因此,我们有一个类似的情况

def f(): Unit = {
  g() // g returns DataFrame which gets discarded by f
}

def g(): DataFrame
如果设置了
scalacOptions+=“-Ywarn value discard”
,则编译器会标记它


问题是从。

您返回的值/最后一个值的类型不同于
单位
,而预期的返回类型是
单位
,因此该值被丢弃(可能是设计不良的症状),我不明白,你能再解释一下吗please@cchantep它似乎返回
Unit
:。那么,对于上面的示例,我该如何解决这个问题呢?我尝试过不同的方法,提取变量和函数等,但都无法克服。在McCito库中它是一个缺陷吗?考虑禁用编译器标志,只用于像SO这样的测试:<代码>测试中的SCAACOOREST = =“Ywarn值丢弃”< /代码>编程如何?是可能解决此问题的请求。更新到mockito scala 1.2.2应该可以解决此问题。