回答
开发商Karate这里。我只读过Spock,但这里是我的PoV。
Karate专注于测试HTTP Web服务,因此被设计用于处理和执行JSON和XML的断言。因此 - 你do not need POJO-s any-more。
鉴于Spock是一个通用的测试框架。它基于Groovy,因此与仅使用Java相比,它稍微减少了冗长度,并增加了表达测试用例的BDD风格。就像Karate一样,它具有测试用例,生命周期(在钩子,环境切换等之前)数据驱动的测试助手,以及与单元测试和报告框架(如JUnit)的集成。
IMO的一个关键差异是,尽管Spock和类似的框架试图抽象出Java的冗长性,转而使用清晰可读的语法 - 它们只能在某种程度上成功。 Karate几乎完全绕过了Java(来自测试编写者PoV),这意味着您正在使用您想要的“层” - 即HTTP和JSON/XML。
我想指出你的这个comparison between Karate and REST-assured - 因为有些观点也适用于Spock,并且对任何评估空手道的团队都有帮助。
可以使用空手道来测试微服务,这将需要支持嘲笑服务的工具(如Citrus) –
@BrianReinhold这是非常多的路线图。我们认为Karate的DSL实际上非常适合表达动态,有状态的服务器响应。请注意,Karate有一个模拟servlet:https://github.com/intuit/karate/tree/master/karate-mock-servlet –
- 1. Spock Mock与Guava Collection
- 2. Spock参数化与Scala TableDrivenPropertyChecks
- 3. 集成宁静/ thucidydes与spock
- 4. 与Junit一起使用空手道时出错
- 5. 如何从数据库中提取数据与空手道
- 6. Java EE与Spock的集成测试
- 7. spock和clover integration
- 8. 主机的PowerShell:PowerShell中与运行空间与RunspacePool与管道
- 9. 手动添加数据到轨道名称空间模型
- 10. 如何在空手道中创建全局变量?
- 11. 将来自Java类的消息记录回空手道报告
- 12. 空手道 - 如何在循环中调用函数?
- 13. 空手道API测试 - 发布请求失败,但使用Jmeter
- 14. '自我' 验证表达式在JSON文件(空手道框架)
- 15. 空手道API测试 - 从JSON数组转换为字符串
- 16. 空手道API测试 - 使用xml代替json
- 17. 空手道BDD框架抛NPE简单配置
- 18. 是否可以在空手道中使用加密属性?
- 19. 空手道API测试 - 转义'?'在功能文件中的url
- 20. 空手道 - 在POST请求中传递自定义标题
- 21. Spock + GEB vs. Robot Framework
- 22. Spock中的Mock CompletableFuture
- 23. Spock方法嘲讽
- 24. Spock in Java入门
- 25. 无法在spock中的空对象上调用方法leftshift()
- 26. 在Spock对象中使用Spock存在一个void方法
- 27. 遍历块轨道帮手
- 28. 引导手风琴改道
- 29. 动态轨道帮手
- 30. 变更轨道从助手
空手道似乎更具体到Web服务,而Spock是用于任何类型的测试(除非你的意思是Geb)。我会建议做一个尖峰来比较两个,看看他们如何为您的特定需求堆积起来。 – cjstehno