을 Java
과 함께 사용하려고합니다. 라우팅이 성공적으로 완료되고 실행됩니다. 하지만 JUnitRouteTest
을 사용하여 테스트 케이스를 작성하려고하면 오류가 발생합니다.Akka HTTP Java : org.scalatest.Suite의 추상 메소드 yeOldeTestNames()를 오버라이드하지 않습니다.
com.james.controllers.PingPongApiTest is not abstract and does not override abstract method yeOldeTestNames() in org.scalatest.Suite
다음은 akka http route testkit documentation입니다. 이 설명서에 따르면 우리는 akka-http-testkit
만 필요했습니다. 그러나 Java
에 대해서 우리는 또한 Junit
depedency가 필요했습니다. junit 종속성을 가지고 다른 오류가 발생했습니다. cannot access org.scalatest.junit.JUnitSuiteLike
입니다. 또한 다음과 같이 스칼라 테스트 depedency를 주입하고 있습니다 :
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"
)
그럼 난 아래의 오류가 발생했습니다 :
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
어떻게 문제를 해결할 수 있습니다.
루트 클래스 위의 문제에 대한
public class PingPongApi {
public Route handleGetPingRequest() {
return get(() -> route(
path("ping",() -> complete("pong"))
));
}
}
테스트 클래스
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");
}
}
감사합니다. Harmeet! 이것은 내 문제를 해결했다. akka 2.4.10 및 메이븐이 필요합니다 \t \t \t org.scalatest \t \t scalatest_2.11 \t \t 3.0.0 \t \t \t 테스트를 \t \t –