【问题标题】:Integration testing with spark server使用 Spark 服务器进行集成测试
【发布时间】:2018-06-11 00:41:04
【问题描述】:

我正在尝试 IT 我的 spark 服务器。我的目的是测试所有控制器功能。 我想过几个选择: 1. 设置一个服务器,在运行测试时启动,在测试结束时终止。

此解决方案的问题是我必须将整个服务器逻辑重写到新服务器(每次在测试之前设置服务器时,我们都会从头开始服务器)。

  1. 从测试类启动一个控制器(对于启动而不是静态调用来说是必需的,以便为控制器配置正确的数据库),它将调用控制器函数并检查它们的答案。

这是我最喜欢的一个,但这意味着我必须模拟一个 spark 请求。我正在尝试构建一个火花请求和火花响应对象,以发送到我的控制器,但还没有找到一种正确的方法(以及如何发送参数、设置 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);
}
  1. 最后一个是在测试中做控制器功能的确切逻辑,而不是从请求中获取参数,我自己启动它们。

例如,而不是:

String username = req.params(""usrName") 

会是:

Strimg username = "mark"

但是该解决方案需要复制大量代码,并且您可能会错过一小段代码行,这可能会使测试成功,而实际上控制器功能失败(或未按预期交付)。

您对 Integratiom 测试火花驱动服务器有何看法?我也对新的解决方案持开放态度。

【问题讨论】:

    标签: java testing server integration-testing spark-java


    【解决方案1】:

    如果您想进行集成测试,我建议您使用第一种方法,使用随机选择的免费 TCP 端口和 HTTP 客户端库(我经常使用出色的 HttpRequest 库来达到此目的)。

    这种方法的主要问题是,由于 Spark API 是静态的,您将无法在测试用例/套件之间停止/启动服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-20
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 2013-02-16
      相关资源
      最近更新 更多