我对使用Mockito在Scala中进行单元测试非常陌生。 thenReturn
语句中出现错误。
it should "read null when readFromPostgresTarget is called with some
random driver" in {
Given("a null query is sent as query")
val query = ""
val pgObject = mock[PersistenceObject]
val postgresPersistenceObject =
mock[PostgresspersistenceServiceTrait]
val mockDF = mock[DataFrame]
When("it is passed to readFromPostgresTarget")
when(postgresPersistenceObject.readFromPostgresTarget(any[String],mock[Spark
Session],pgObject)).thenReturn(mockDF)
assert(postgresPersistenceObject.readFromPostgresTarget(query,sparkSession,pgObject) === any[DataFrame])
Then("a null value should be returned")
verify(postgresPersistenceObject,times(1))
}
我遇到了错误-
overloaded method value thenReturn with alternatives:
(x$1: Unit,x$2: Unit*)org.mockito.stubbing.OngoingStubbing[Unit] <and>
(x$1: Unit)org.mockito.stubbing.OngoingStubbing[Unit]
cannot be applied to (org.apache.spark.sql.DataFrame)
.thenReturn(mockDF)
我尝试将mockDF
中的thenReturn(mockDF)
改成thenReturn(any[DatafRame])
,但这并不能解决问题。
我尝试传递一个SparkSession
而不是模拟它不起作用。
我不知道自己在犯什么错误。