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应该可以解决此问题。