我正在尝试IT我的火花服务器。我的目的是测试所有控制器功能。 我考虑过几个选择: 1.设置将在运行测试时启动的服务器,并在测试结束时终止。
这个解决方案的问题是我必须将整个服务器逻辑重写到新服务器(我们每次在测试之前设置服务器时都从头开始服务器。)
这是我最喜欢的一个,但这意味着我必须模拟一个火花请求。我试图建立一个火花请求,并激发响应对象,发送到我的控制器,并没有找到一种方法来正确地做到这一点(以及如何发送参数,设置URL路由等。 )
@Test
Public void testTry(){
String expectedName = "mark";
myController myCtl = new myController()
Request req = null;
Response res = null;
String childName = myCtl.getChildNameFromDB(req, res);
assertEquals(childName, expectedName);
}
例如,而不是:
String username = req.params(""usrName")
它将是:
Strimg username = "mark"
但是该解决方案需要复制大量代码,并且您可能会错过一些可能使测试成功的代码行,而实际上,控制器功能失败(或者不按需要提供)。
您如何看待Integratiom测试火花驱动的服务器?我也很开心新的解决方案。
答案 0 :(得分:0)
如果你想进行集成测试,我建议使用你的第一种方法,使用随机选择的免费TCP端口和HTTP客户端库(我经常使用优秀的HttpRequest库)。< / p>
这种方法的主要问题是,由于Spark API是静态的,因此您将无法在测试用例/套件之间停止/启动服务器。