Не могу понять, почему фиктивный метод не работает - PullRequest
0 голосов
/ 04 марта 2020

У меня есть фиктивный метод

def getBlacklist(newList: List[String]) ={
    when(service.getMyBlacklist).thenReturn(newList)
  }

, когда я вызываю его в разделе теста, возвращаемое значение равно нулю

val res = mocks.getBlacklist(List("abcd"))

основной функции, может кто-нибудь помочь мне с этим? Спасибо.

if (!services.getMyBlacklist.contains(s"$accountId:$ruleName")) {
                ***
   } else {
       ***
  }

1 Ответ

1 голос
/ 05 марта 2020

Я думаю, что проблема насмешки не сделана правильно. По сути, вы делаете для того, чтобы смоделировать поведение класса таким образом, чтобы при вызове метода этого класса в каком-то другом классе, который вы тестируете, возвращалось имитированное значение. Предположим, что services является экземпляром класса Service, как показано ниже:

class Service() {
  def getBlacklist(): List[String]) = {// Some Original code here}
} 

Теперь для теста используйте:

val service = mock[Service]
val mockList = List("abc") // change according to your use case 
when(service.getBlacklist).thenReturn(mockList)

Дайте мне знать, если это поможет! !

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