2016-11-02 2 views
0

Я хочу, чтобы мой макет, чтобы быть в состоянии обрабатывать любой вход для методаInvalidUseOfMatchersException, когда я передаю любую строку для моего макете параметра

val redis = mock[RedisClient] 
when(redis.scard(any[String])).thenReturn(Some("hello")) 

Ошибка:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers! 
[info] 2 matchers expected, 1 recorded: 
[info] -> at ..(SomeSpec.scala:123) 
[info] 
[info] This exception may occur if matchers are combined with raw values: 
[info]  //incorrect: 
[info]  someMethod(anyObject(), "raw String"); 

ответ

1

scard принимает два параметра, из которых one parameter является implicit:

// SCARD 
// Return the number of elements (the cardinality) of the Set at key. 
def scard(key: Any)(implicit format: Format): Option[Long] = 
    send("SCARD", List(key))(asLong) 

Если вы не укажете аргумент, Scala предоставит тот, который препятствует способности Mockito line up matchers with arguments.

См. Также: org.specs2.mock.Mockito matchers are not working as expected

Смежные вопросы