Combinadores de argumento Mockito e Scala

Tentar usar comparadores de argumento Mockito em seus testes Scala e obter uma frustrante

Invalid use of argument matchers!

por nenhuma razão óbvia?

Verifique se a função com a qual você está combinando os argumentos não tem nenhum valor padrão! Todos os argumentos precisam ser correspondentes, mesmo se os valores forem fornecidos por padrões:

def doCoolStuff(thing: Thing, message: String = "") = { ... }

Em seguida, o seguinte lançará uma InvalidUseOfMatchersException:

when(mock.doCoolStuff(eq(myThing)).thenReturn(anAwesomeResult)

Mas usar um matcher para os parâmetros padrão funcionará:

when(mock.doCoolStuff(eq(myThing),any[String])).thenReturn(anAwesomeResult)