scala unit-testing scalatest scalamock

Scalamock 3. Método de sobrecarga simulada sin parámetro



unit-testing scalatest (3)

En la escala 2.12 esto también funciona (sin inspección para Intellij):

//noinspection ConvertibleToMethodValue (tailer.run _: () => Unit) expects()

No pude encontrar ninguna documentación que explique cómo simular métodos sobrecargados que no tienen argumentos en Scalamock, por ejemplo.

public boolean isInfoEnabled(Marker marker); public boolean isInfoEnabled();

Para burlarse de la función que toma el marcador, simplemente se puede usar

(loggerMock.isInfoEnabled(_: Marker)).expects(*).returning(true)

¿Pero cómo burlarse del otro método que no toma parámetros? Cualquier ayuda es apreciada.


Estaba usando este enfoque hasta que me di cuenta de que en Scala 2.12+ esta solución está obsoleta.

Recibirá una advertencia como

Eta-expansion of zero-argument method values is deprecated.

Después de algunas investigaciones descubrí esta solución:

(loggerMock.isInfoEnabled _ ).expects().returning(true)

o

import scala.language.postfixOps loggerMock.isInfoEnabled _ expects () returning true


Finalmente lo resolví:

(loggerMock.isInfoEnabled: () => Boolean).expects().returning(true)

Este issue me ayudó mucho. Aún sería bueno tener algo como esto documentado.