集成测试谁下载文件

时间:2017-11-07 21:36:07

标签: java maven-3 integration-testing maven-failsafe-plugin

我正在开发一个做一些工作的网络应用程序,将数据打包到一个文件中并返回该文件(Content-Type: application/force-download)。现在我正在实现一些集成测试,我要求数据和Web应用程序给我回复文件。测试下载预期数据时,Web应用程序正常运行。我看了this,我发现它非常鼓舞人心,但是当您构建要下载的文件时,该响应是否有效?

1 个答案:

答案 0 :(得分:1)

您可以采取几种方法。按顺序从最好到最差(YMMV):

在语义上检查输出。例如,在JSON的情况下,检查是否可以解析它,并且存在预期的键和值。如果是图像,请检查它是否可以解析并具有正确的格式。

亲:您只是测试您真正关心的内容。测试失败可能指向特定问题。

骗局:需要做更多的工作。

直接比较文件,逐字节。"黄金大师"做法。如果文件比几行大,或者它是二进制文件,我会将它放在磁盘上并进行集成测试加载它。这也可以让您更轻松地在外部程序中查看/编辑它。

Pro:很容易看到预期文件的样子。

Con:如果发生无关的变化,可能会很脆弱。例如,JSON对象中的键顺序无关紧要。更糟糕的是,如果您正在生成PNG图像,则创建时间可能会嵌入到文件中,因此您的测试每次都会失败。

比较文件哈希。我认为这是最后的手段。

Pro:您不需要将整个文件存储在集成测试中,只有它非常好才能存储。

Con:测试失败告诉你什么。即使嵌入在集成测试中的哈希也没有告诉你什么。这只是一个变化探测器"测试