kotlin 在Ktor测试中集成OpenAPI验证

bis0qfac  于 2022-12-19  发布在  Kotlin
关注(0)|答案(1)|浏览(168)

我在ktor应用程序中定义了一些端点集成测试,我希望使用定义的OpenAPI yaml规范验证测试中的请求和响应。
例如,如果OpenAPI yaml文件中定义的响应中应有一个标头,但测试中的实际响应中缺少该标头,则the test should fail
我对此做了大量的研究,但找不到一个直接的解决方案。Springboot似乎相对容易地支持这一点。有人对此有经验吗?

7cwmlq89

7cwmlq891#

我在ktor应用程序中定义了一些端点集成测试,我希望使用OpenAPI yaml规范来验证测试中的请求和响应。
看起来你想验证你的应用程序是否符合OpenAPI规范,作为集成测试的一部分。恕我直言,这是两个独立的问题。

  • 集成测试验证您的应用程序是否能够使用其依赖项(其他服务、数据存储等)
  • API签名验证也可以单独进行,因为您只需验证应用程序是否符合规范

我建议您不要使用集成测试来验证OpenAPI,而是将OpenAPI规范本身作为应用程序的测试来运行。支持OpenAPI的API测试工具可以生成请求并验证响应,以确保您的应用程序符合规范。
通过分离这两个问题,您不必等待集成测试来获得OpenAPI规范验证的反馈。
如果OpenAPI yaml文件中定义的响应中存在预期的报头,而测试中的实际响应中缺少该报头,则测试应当失败。
您可以使用Specmatic将OpenAPI Specification作为测试运行,以验证类似的场景。

还有其他工具,如Dredd,似乎支持swagger 2(Specmatic只支持OpenAPI 3. 0. 0以上)。请选择一个适合您需要的工具。
希望这个有用。
披露:我是Specmatic的首席开发人员和CTO

相关问题