Модульное тестирование Scala с использованием mockito - PullRequest
0 голосов
/ 04 ноября 2019

Я очень плохо знаком с модульным тестированием в Scala с использованием Mockito. Я получаю сообщение об ошибке в операторе 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 вместо макета, он не работает.

Я не могу понять, какую ошибку я делаю.

1 Ответ

0 голосов
/ 05 ноября 2019

Чтобы избежать этих проблем (связанных с взаимодействием Scala / Java), вы должны использовать mockito-scala

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...