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