在测试中迭代所有 Play Framework 路由
Iterating all Play Framework routes in Test
有什么方法可以迭代 routes
文件中描述的所有服务? URL 和 HTTP 方法是必需的。
我需要此功能进行 运行 一些集成测试。
我正在为 Java 使用 Play。
不容易。不久前我设法破解了它(没有 scala 诀窍)。我会 post 该代码可能会有用。
public static List<String[]> parseRoutes() {
scala.Option<play.core.Router.Routes> option = Play.application().getWrappedApplication().routes();
if (option.isDefined()) {
play.core.Router.Routes routes = option.get();
scala.collection.Seq<scala.Tuple3<String, String, String>> doc = routes.documentation();
scala.collection.Iterator<scala.Tuple3<String, String, String>> it = doc.iterator();
List<String[]> listOfRoutes = new ArrayList<String[]>();
while(it.hasNext()) {
scala.Tuple3<String, String, String> tuple = it.next();
//tuple._1() is the method and tuple._2() the url... tuple._3() is the controller name
String[] route = {tuple._1(), tuple._2()};
listOfRoutes.add(route);
Logger.debug("route -> " + Arrays.toString(route));
}
return listOfRoutes;
}
return null;
}
不用担心 .iterator()
显示 The method iterator() is ambiguous for the type Seq<Tuple3<String,String,String>>
。它在游戏中编译得很好。
有什么方法可以迭代 routes
文件中描述的所有服务? URL 和 HTTP 方法是必需的。
我需要此功能进行 运行 一些集成测试。
我正在为 Java 使用 Play。
不容易。不久前我设法破解了它(没有 scala 诀窍)。我会 post 该代码可能会有用。
public static List<String[]> parseRoutes() {
scala.Option<play.core.Router.Routes> option = Play.application().getWrappedApplication().routes();
if (option.isDefined()) {
play.core.Router.Routes routes = option.get();
scala.collection.Seq<scala.Tuple3<String, String, String>> doc = routes.documentation();
scala.collection.Iterator<scala.Tuple3<String, String, String>> it = doc.iterator();
List<String[]> listOfRoutes = new ArrayList<String[]>();
while(it.hasNext()) {
scala.Tuple3<String, String, String> tuple = it.next();
//tuple._1() is the method and tuple._2() the url... tuple._3() is the controller name
String[] route = {tuple._1(), tuple._2()};
listOfRoutes.add(route);
Logger.debug("route -> " + Arrays.toString(route));
}
return listOfRoutes;
}
return null;
}
不用担心 .iterator()
显示 The method iterator() is ambiguous for the type Seq<Tuple3<String,String,String>>
。它在游戏中编译得很好。