2016-01-26 18 views
7

Mi piacerebbe mozzare uno dei metodi di una classe di scala con dipendenze. C'è un modo per ottenere ciò usando ScalaMock?Scala parziale stubing

Ecco un esempio semplificato di quello che ho:

class TeamService(val dep1: D1) { 

    def method1(param: Int) = param * dep1.magicNumber() 

    def method2(param: Int) = { 
    method1(param) * 2 
    } 
} 

In questo esempio mi piacerebbe prendere in giro method1(). Il mio test sarebbe:

val teamService = ??? // creates a stub 
(teamService.method1 _).when(33).returns(22) 
teamService.method2(33).should be(44) 

C'è un modo per raggiungere questo obiettivo?

+0

Penso che se si sta prendendo in giro un po 'di classe, non si vuole dipendere da sua attuazione, ma ora ti sembra di essere cercando di dipendere da implementazione di 'method1' e' D1'. Forse non ci sono abbastanza informazioni ma forse dovresti prendere in giro tutti i metodi che devi usare. –

+0

Qual è la tua risoluzione su questo? –

+0

sembra che la scala mock non supporta questa funzione :( – Danix

risposta

0

Devi prendere in giro dep1: D1, quindi tutto andrà bene. Non è un buon approccio per deridere "metà" o solo alcuni metodi.

Mocking dep1: D1 è il modo giusto per testarlo.

val mockD1 = mock[D1] 
val teamService = new TeamService(mockD1) 
(mockD1.magicNumber _).returns(22) 
teamService.method2(33).should be(44) 
Problemi correlati