2017-05-18 3 views
0

Ich spielte mit ScalaMock. Ich habe eine KISS-Version des Fehlers von I geschrieben, als ich versuche, ScalaMock zu benutzen, um ein Objekt in einem Testfall zu verspotten.scalamock newexpectationexception - [scala, scalamock, akka-http]

import akka.http.scaladsl.server.Route 
import org.scalamock.scalatest.MockFactory 
import org.scalatest.FlatSpec 
import akka.http.scaladsl.testkit.ScalatestRouteTest 
import akka.http.scaladsl.server.Directives._ 
import org.scalatest.Matchers._ 

trait MetricsRegistry { 
    def recordValue(myString: String): Unit 
    def decatMyString(myString: String): Unit 
} 



class ScalaMockError01Spec extends FlatSpec with MockFactory with ScalatestRouteTest { 

def actorRefFactory = system 
    lazy val metricsRegistry = mock[MetricsRegistry] 

    val route : Route = { 
    get{ 
     complete("Status is OK") 
    } 
    } 

    "MetricDirectives" should "record latency and success count for 200 response" in { 
    inAnyOrder { 
     (metricsRegistry.recordValue _).expects(*).twice 

    } 

    Get("/success") ~> route ~> check { 
     status.toString() shouldBe "200 OK" 
    } 
    } 
} 

Der Fehler Ich erhalte ist wie folgt

Unbefriedigend Erwartung:

Erwartet: inAnyOrder {inAnyOrder { MetricsRegistry.recordValue (*) zweimal (nie genannt - unzufrieden)}}

Actual: ScalaTestFailureLocation: ScalaMockError01Spec bei (ScalaMockError01Spec.scala: 22) org.sc alatest.exceptions.TestFailedException: Unbefriedigend Erwartung:

Erwartet: inAnyOrder {inAnyOrder { MetricsRegistry.recordValue (*) zweimal (nie genannt - unzufrieden)}}

Aktuell: bei org.scalamock.scalatest.AbstractMockFactory $ class.newExpectationException (AbstractMockFactory.scala: 51) bei ScalaMockError01Spec.newExpectationException (ScalaMockError01Spec.scala: 22) bei ScalaMockError01Spec.newExpectationException (ScalaMockError01Spec.scala: 22) bei org.scalamock.context.MockContext $ Klasse. BerichtU nsatisfiedExpectation (MockContext.scala: 45) bei ScalaMockError01Spec.reportUnsatisfiedExpectation (ScalaMockError01Spec.scala: 22) bei org.scalamock.MockFactoryBase $ class.verifyExpectations (MockFactoryBase.scala: 108) bei org.scalamock.MockFactoryBase $ class .withExpectations (MockFactoryBase.scala: 56) bei ScalaMockError01Spec.withExpectations (ScalaMockError01Spec.scala: 22) bei org.scalamock.scalatest.AbstractMockFactory $ class.withFixture (AbstractMockFactory.scala: 34) bei ScalaMockError01Spec.withFixture (ScalaMockError01Spec .scala: 22) um org.scalatest.FlatSpecLike $ class.invokeWithFi xture von $ 1 (FlatSpecLike.scala: 1679) bei org.scalatest.FlatSpecLike $$ anonfun $ runTest $ 1.Apply (FlatSpecLike.scala: 1692) bei org.scalatest.FlatSpecLike $$ anonfun $ runTest $ 1.Apply (FlatSpecLike .scala: 1692) bei org.scalatest.SuperEngine.runTestImpl (Engine.scala: 289) bei org.scalatest.FlatSpecLike $ class.runTest (FlatSpecLike.scala: 1692) bei org.scalatest.FlatSpec.runTest (FlatSpec .scala: 1685) bei org.scalatest.FlatSpecLike $$ anonfun $ runTests $ 1.Apply (FlatSpecLike.scala: 1750) bei org.scalatest.FlatSpecLike $$ anonfun $ runTests $ 1.Apply (FlatSpecLike.scala: 1750) um org.scalatest.SuperEngine $$ anonfun $ traverseSubNodes $ 1 $ 1.Anwendung (Engine. scala: 396) bei org.scalatest.SuperEngine $$ anonfun $ traverseSubNodes $ 1 $ 1.Apply (Engine.scala: 384) bei scala.collection.immutable.List.foreach (List.scala: 381) bei org. scalatest.SuperEngine.traverseSubNodes von $ 1 (Engine.scala: 384) bei org.scalatest.SuperEngine.org $ scalatest $ Supermotor $$ runTestsInBranch (Engine.scala: 373) bei org.scalatest.SuperEngine $$ anonfun $ traverseSubNodes $ 1 $ 1.Anwendung (Engine.scala: 410) bei org.scalatest.SuperEngine $$ anonfun $ traverseSubNodes $ 1 $ 1.Apply (Engine.scala: 384) bei scala.collection.immutable.List.foreach (List.scala: 381) bei org.scalatest.SuperEngine.traverseSubNodes 1 $ (Motor. Skala: 384) bei org.scalatest.SuperEngine.org $ ScalaTest $ Supermotor $$ runTestsInBranch (Engine.scala: 379) bei org.scalatest.SuperEngine.runTestsImpl (Engine.scala: 461) bei org.scalatest.FlatSpecLike $ class.runTests (FlatSpecLike.scala: 1750) bei org.scalatest.FlatSpec.runTests (FlatSpec.scala: 1685) bei org.scalatest.Suite $ class.run (Suite.scala: 1147) bei org.scalatest .FlatSpec.org $ ScalaTest FlatSpecLike $$ $ $ Super run (FlatSpec.scala: 1685) bei org.scalatest.FlatSpecLike $ $$ anonfun laufen $ 1.Apply (FlatSpecLik e.scala: 1795) bei org.scalatest.FlatSpecLike $ $$ anonfun laufen $ 1.Apply (FlatSpecLike.scala: 1795) bei org.scalatest.SuperEngine.runImpl (Engine.scala: 521) bei org.scalatest .FlatSpecLike $ class.run (FlatSpecLike.scala: 1795) bei ScalaMockError01Spec.org $ ScalaTest BeforeAndAfterAll $$ $ $ Super run (ScalaMockError01Spec.scala: 22) bei org.scalatest.BeforeAndAfterAll $ class.liftedTree1 1 $ (BeforeAndAfterAll. Skala: 213) bei org.scalatest.BeforeAndAfterAll $ class.run (BeforeAndAfterAll.scala: 210) bei ScalaMockError01Spec.run (ScalaMockError01Spec.scala: 22) bei org.scalatest.tools.SuiteRunner.run (SuiteRunner.scala : 45) bei org.scalatest.tools. Runner $$ anonfun $ doRunRunRunDaDoRunRun $ 1.Apply (Runner.scala: 1340) bei org.scalatest.tools.Runner $$ anonfun $ doRunRunRunDaDoRunRun $ 1.Apply (Runner.scala: 1334) bei scala.collection.immutable.List .foreach (List.scala: 381) bei org.scalatest.tools.Runner $ .doRunRunRunDaDoRunRun (Runner.scala: 1334) bei org.scalatest.tools.Runner $$ anonfun $ runOptionallyWithPassFailReporter $ 2.Apply (Runner.scala : 1011) bei org.scalatest.tools.Runner anonfun $$ $ $ runOptionallyWithPassFailReporter 2.Apply (Runner.scala: 1010) bei org.scalatest.tools.Runner $ .withClassLoaderAndDispatchReporter (Runner.scala: 1500) bei org.scalatest.tools.Runner $ .runOptiona llyWithPassFailReporter (Runner.scala: 1010) bei org.scalatest.tools.Runner $ .run (Runner.scala: 850) bei org.scalatest.tools.Runner.run (Runner.scala) bei org.jetbrains.plugins .scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2 (ScalaTestRunner.java:138) bei org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main (ScalaTestRunner.java:28)

May I wissen, warum ich die Störung erhalten?

Dank

Antwort

0

dumm von mir, ich brauche die nachgeahmten Funktion

metricsRegistry.recordValue zu nennen ("mein Name ist billa")