3

我最近发现了用于测试 Web 服务的空手道框架。但也有Spock框架提供类似的(在我看来)功能。框架之间有什么区别?我想建议我们的测试人员看看它。

4

1 回答 1

8

空手道的开发者在这里。我只读过关于 Spock 的文章,但这是我的 PoV。

空手道专注于测试 HTTP Web 服务,因此旨在操作和执行对 JSON 和 XML 的断言。结果 - 你不再需要 POJO-s 了

而 Spock 是一个通用的测试框架。它基于 Groovy,因此与仅使用 Java 相比,它在一定程度上减少了冗长,并且增加了在表达测试用例时有价值的 BDD 风格。就像空手道一样,它具有测试用例的结构、生命周期(在钩子、环境切换等之前)数据驱动的测试助手,以及与单元测试和报告框架(如 JUnit)的集成。

IMO 的一个关键区别在于,虽然 Spock 和类似框架试图抽象出 Java 的冗长,以支持更清晰、更易读的语法——但它们仅在一定程度上取得了成功。空手道几乎完全绕过了 Java(来自测试编写者 PoV),这意味着您正在您想要的确切“层”中操作——即 HTTP 和 JSON / XML。

我想向您指出空手道和 REST-assured 之间的比较——因为其中一些点也适用于 Spock,这对于任何评估空手道的团队来说都是一个有用的参考。

编辑 - 空手道的数据驱动测试与 Spock 非常相似,并且使用 JS(可以进行 Java 互操作)而不是 Groovy:https ://twitter.com/KarateDSL/status/1359369240227106816

于 2017-07-28T03:40:42.353 回答