2013-07-10 8 views
8

So die Spiel Rahmen spricht über mit specs2 und specs2 mit MockitoPlay-Framework 2 scala specs2 Mockito, wie schreibe ich eine spöttische Unit-Test

Ich möchte Mockito verwenden, um einen Test zu schreiben, in dem die Vorlage, die der Controller aufruft ist ein Mockito-Spott.

Alle Dokumente, die ich bisher gefunden habe, sind Java-Implementierungen, in denen Sie die statische Mock-Funktion aufrufen und ihr die Mocked-Klasse als Generika-Argument geben.

Von was ich sagen kann die Mock-Funktion wird nicht standardmäßig in einer Spezifikation ausgesetzt, so wie ich einen Mockito Mock erstellen?

Bitte ein Beispiel geben, die sowohl die Mock Erstellung enthält, und den Schein behauptet mit bestimmten Argumenten

Antwort

6

Nach vielen googeln und Haare genannt wird, zieht kam ich mit den folgenden

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

erwähnenswert, , ist das Spiel zu diesem Zeitpunkt nicht standardmäßig die Mockito-Abhängigkeit. Sie müssen es in Ihrem Build.scala –

+0

hinzufügen, wie fügen Sie es zu Build.scala hinzu? – Jaap

+1

Fügen Sie "org.mockito"% "mockito-all"% "1.9.5"% "test" (oder die von Ihnen bevorzugte Version) zur appDependencies-Sequenz hinzu. – johanandren

Verwandte Themen