空手道对Spock

Dmi*_*ich 2 testing integration-testing end-to-end spock karate

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

Pet*_*mas 6

空手道的开发者在这里.我只读过Spock,但这是我的PoV.

Karate专注于测试HTTP Web服务,因此旨在操纵和执行JSON和XML上的断言.结果 - 你不再需要POJO-s了.

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

IMO的一个关键区别是,虽然Spock和类似的框架试图抽象出Java的冗长,而采用更清晰,更易读的语法 - 但它们只在某种程度上取得了成功.空手道几乎完全绕过Java(来自测试编写者PoV),这意味着您正在运行您想要的确切"层" - 即HTTP和JSON/XML.

我想指出空手道和REST保证之间的比较 - 因为有些观点也适用于Spock,对任何评估空手道的团队来说都是有用的参考.

  • 更新:空手道现在内置了模拟!https://github.com/intuit/karate/tree/master/karate-netty (2认同)