2013-07-10 5 views
8

Così i colloqui quadro gioco circa avendo specs2 e specs2 avendo MockitoGiocare Framework 2 Scala specs2 Mockito, come faccio a scrivere uno unit test beffardo

che voglio usare Mockito a dare una prova in cui il modello che le invoca controllore è un finto mockito.

Tutti i documenti che ho trovato finora sono implementazioni java in cui si chiama la funzione statica simulata e gli si assegna la classe Mocked come argomento generico.

Da quello che posso dire la funzione di simulazione non è esposta di default all'interno di una specifica, quindi come posso creare un mockito mock?

Si prega di dare un esempio che include sia creare modello, e affermando il mock viene chiamato con alcuni argomenti

risposta

6

Dopo un sacco di googling e tirare i capelli mi si avvicinò con la seguente

package test 

import org.specs2.mutable._ 

import play.api.test._ 
import play.api.test.Helpers._ 

import org.specs2.mock._ 
import org.mockito.Matchers 

class ToTest { 
    def go(a:String) = { 
    "other" 
    } 
} 

class MockSpec extends Specification with Mockito { 
    "Mock" should { 
     "work" in { 
     //assemble 
     val m = mock[ToTest] 
     m.go(anyString) returns "tested" 

     //act 
     val result = m.go("test") 


     //assert 
     result must equalTo("tested") 
     there was one(m).go(Matchers.eq("test")) 
     } 
    } 
} 
+4

degno di nota , questo gioco non implica attualmente la dipendenza da mockito di default. Devi aggiungerlo nel tuo Build.scala –

+0

come lo aggiungi a Build.scala? – Jaap

+1

Aggiungi "org.mockito"% "mockito-all"% "1.9.5"% "test" (o qualsiasi altra versione tu preferisci) alla sequenza appDependencies. – johanandren