unit-testing - 将测试从一个 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 客户端重复相同的测试的解决方案?
还是有第三种解决方案?
解决方案
推荐阅读
- java - 将 hibernate 3.6 迁移到 5.1 在 HibernateUtils 中生成异常
- python - joblib.Parallel 正在重用生成的数字,而不是为每个进程重做
- solr - 无法在 SOLR 中索引时间戳
- html - 将div放在同一行
- promise - RollupJS .write 承诺
- python - Pandas - 在过滤的数据帧上应用聚合
- dataweave - Dataweave 2.0 maxBy 和过滤器
- python - 管道传输到文件时,Powershell 中调用的 Python 脚本无法写入标准输出
- json - 根据点击的链接显示来自 json 文件的不同数据
- asp.net - 令牌过期后如何立即将用户重定向到登录页面