Ich werde akka-http
mit Java
verwenden. Das Routing wurde erfolgreich ausgeführt und ausgeführt. Aber wenn ich versuche, Testfall mit JUnitRouteTest
zu schreiben, habe ich einen Fehler bekommen.Akka HTTP Java: Überschreiben Sie die abstrakte Methode yeOldeTestNames() nicht in org.scalatest.Suite
com.james.controllers.PingPongApiTest is not abstract and does not override abstract method yeOldeTestNames() in org.scalatest.Suite
Ich folge akka http route testkit documentation. Gemäß dieser Dokumentation benötigten wir nur akka-http-testkit
. Aber für Java
Wir auch benötigt Junit
Abhängigkeit. Mit nur Junit-Abhängigkeit habe ich einen anderen Fehler ist cannot access org.scalatest.junit.JUnitSuiteLike
. Ich bin auch scala Test depedency injizieren, wie unten:
libraryDependencies ++= Seq(
"com.typesafe.akka" % "akka-http-experimental_2.11" % "2.4.8",
"com.typesafe.akka" % "akka-http-testkit_2.11" % "2.4.8" % "test",
"junit" % "junit" % "4.12" % "test",
"org.scalatest" % "scalatest_2.11" % "3.0.0" % "test"
)
Dann habe ich den folgenden Fehler:
com.james.controllers.PingPongApiTest is not abstract and does not override abstract method yeOldeTestNames() in org.scalatest.Suite
[error] public class PingPongApiTest extends JUnitRouteTest {
[error] TestRoute route = testRoute(new PingPongApi().handleGetPingRequest());
[error]
[error] @Test
[error] public void testGetPingRequest() {
[error]
[error] route.run(HttpRequest.GET("/ping"))
[error] .assertStatusCode(StatusCodes.OK)
[error] .assertEntity("pong");
[error] }
[error] }
[error] (test:compileIncremental) javac returned nonzero exit code
[error] Total time: 1 s, completed 10 Aug, 2016 11:28:11 AM
Wie konnte ich das Problem lösen. Im Anschluss ist mein Code:
Routenklasse
public class PingPongApi {
public Route handleGetPingRequest() {
return get(() -> route(
path("ping",() -> complete("pong"))
));
}
}
Testklasse
public class PingPongApiTest extends JUnitRouteTest {
TestRoute route = testRoute(new PingPongApi().handleGetPingRequest());
@Test
public void testGetPingRequest() {
route.run(HttpRequest.GET("/ping"))
.assertStatusCode(StatusCodes.OK)
.assertEntity("pong");
}
}
Dank Harmeet! Das hat mein Problem gelöst. Für akka 2.4.10 und maven Sie brauchen: \t \t \t org.scalatest \t \t scalatest_2.11 \t \t 3.0.0 \t \t \t Test \t \t –