【发布时间】:2017-07-27 13:33:15
【问题描述】:
【问题讨论】:
-
Karate 似乎更专门针对 Web 服务,而 Spock 则适用于任何类型的测试(除非您指的是 Geb)。我建议做一个峰值来比较两者,看看它们如何满足您的特定需求。
标签: testing integration-testing spock end-to-end karate
【问题讨论】:
标签: testing integration-testing spock end-to-end karate
Karate 的开发者在这里。我只读过关于 Spock 的文章,但这是我的 PoV。
Karate 专注于测试 HTTP Web 服务,因此旨在操作和执行对 JSON 和 XML 的断言。结果——你do not need POJO-s any-more。
而 Spock 是一个通用测试框架。它基于 Groovy,因此与仅使用 Java 相比,它在一定程度上减少了冗长,并且它增加了在表达测试用例时有价值的 BDD 风格。就像空手道一样,它具有测试用例的结构、生命周期(在钩子、环境切换等之前)数据驱动的测试助手,以及与单元测试和报告框架(如 JUnit)的集成。
IMO 的一个关键区别在于,虽然 Spock 和类似框架试图抽象出 Java 的冗长,以支持更简洁、更易读的语法——但它们仅在一定程度上取得了成功。空手道几乎完全绕过了 Java(来自测试编写者 PoV),这意味着您在您想要的确切“层”中操作 - 即 HTTP 和 JSON / XML。
我想向您指出这个comparison between Karate and REST-assured - 因为其中一些要点也适用于 Spock,这对于任何评估空手道的团队来说都是一个有用的参考。
编辑 - 空手道的数据驱动测试与 Spock 非常相似,并且使用 JS(可以进行 Java 互操作)而不是 Groovy:https://twitter.com/KarateDSL/status/1359369240227106816
【讨论】: