首页 > 解决方案 > 将测试从一个 HTTP 客户端重用到另一个

问题描述

我用 Java 编写了一个简单的库,它将 HTTP 请求从一个库(REST-assured)转换为 curl 命令。令人惊讶的是,我必须支持许多 HTTP 协议的极端案例。这导致创建了一套相当不错的测试。

现在我想为另一种格式的 HTTP 请求(Apache HTTP 客户端)提供支持。

我想重用现有测试来推动开发,因为在抽象级别测试将使用与我用于 REST-assured 相同的 HTTP 请求。但是,不同之处在于它们的表示:

Some abstract HTTP request -> RestAssuredRequest -> library -> curl command

Some abstract HTTP request -> Apache HttpRequest -> library -> curl command

换句话说,为了重用相同的测试,我需要首先为 HTTP 请求定义一些通用的表示,然后从这个表示到特定的 HTTP 客户端的转换器。似乎有点过度设计,可能容易出错的逻辑,我只会在测试中使用。已经有类似的东西,称为Google HTTP 客户端,它是流行 HTTP 客户端的包装器,尽管它不支持 REST-assured,这意味着我需要为此提供支持。

我是否注定要为每个要支持的 HTTP 客户端重复相同的测试的解决方案?

还是有第三种解决方案?

标签: unit-testingarchitectureintegration-testing

解决方案


推荐阅读