2015-05-26 21 views
10

Il mio codice applicazione utilizza aserviceCome stub una chiamata di metodo con un matcher implicita Mockito e Scala

trait AService { 
    def registerNewUser (username: String)(implicit tenant: Tenant): Future[Response] 
} 

per registrare un nuovo utente. Classe Tenant è una semplice classe caso:

case class Tenant(val vstNumber:String, val divisionNumber:String) 

Trait AServiceMock imita la logica di registrazione utilizzando una versione beffato di aservice

trait AServiceMock { 
    def registrationService = { 
    val service = mock[AService] 
    service.registerNewUser(anyString) returns Future(fixedResponse) 
    service 
    } 
} 

Iow ogni volta registerNewUser è chiamato aservice la risposta sarà "fixedResponse" (definito altrove).

La mia domanda è, come definisco il parametro implicito del tenant come un mockito matcher come anyString?

btw. Sto usando Mockito con Specs2 (e Play2)

+1

un ipotesi: che dire di 'def implicita tenantMatcher = any [Tenant] '? – Eric

+0

@Eric perfetta ipotesi! Mi ci sono voluti due tazze di caffè vedi sotto;) – simou

risposta

11

a volte si deve inviare il SO primo a venire con la risposta del tutto ovvia (duhh):

service.registerNewUser(anyString)(any[Tenant]) returns Future(fixedResponse)