9

我看到一些帖子(例如这里1)建议使用 groovy 以 groovy 编程语言为 java 应用程序编写集成测试。我正在使用以下技术开发应用程序:Java 7、Java EE 6、POSTGRESQL

我知道 groovy 是

  • 易于与java集成
  • 快速编写代码

但是有什么特别的理由将它用于 IT 吗?在您的代码库中添加另一种编程语言不会让您的生活陷入困境吗?我想我从图片中遗漏了一些东西,所以我很感激你的回复。

4

2 回答 2

3

我将很快开始一个与您的堆栈完全相同的项目,但 Groovy 也将用于生产代码,而不仅仅是测试。

将 Groovy 添加到您的代码库中没有问题,因为它是一种简单的语言。如果你包含一些看起来不太像 java 的语言,比如 haskell 或 prolog,那就另当别论了。您已经包含了 Facelets、EL、CSS、HTML 和 Javascript。添加另一种语言的哪个部分不好?:-)

我在 IT 测试中为 Groovy 挑选的要点:

  • 易于编写断言和模拟数据;
  • 代码简洁;
  • 平滑的学习曲线;
  • 简洁的代码来操作像Geb这样的浏览器自动化;

Groovy 中的其他简单到忘记的东西:

  • 易于编写 XML/JSON(例如,如果您需要测试 Web 服务);
  • 静态编译,如果需要的话;

我们在我最后两家公司的测试团队没有在生产代码中工作,但很快就开始用 Groovy 编写测试并且喜欢这种语言:不用担心类型和东西,只需工作测试!

于 2013-03-20T16:06:13.963 回答
2

我认为应该阅读它,因为与 Java 相比,Groovy 特别适合编写测试。在 Groovy 中没有什么是您在 Java 中做不到的,但这通常需要付出巨大的努力。例如,像 Spock 这样的东西在 Java 中几乎是不可读的。

许多小事使它如此。例如,有一些权力断言,它使 Groovy 中断言语句的断言错误输出非常好。无缝集成允许没有额外的代码来对齐语言世界。DSL 功能允许您轻松编写最少的 DSL 以减少样板代码。所有这些都是为了让您了解您实际测试的内容以及测试方式。因为如果测试失败,您必须准确理解该部分,这会减少您编写测试所需的时间。

我能建议的只是尝试一下。然后它要么说服你,要么不说服你。如果您的案例非常简单,那么 Java 可能对您来说已经足够好了。如果测试变得更复杂,那么必须理解一些 Groovy 代码可能是这里较小的障碍。不要忘记:作为一名 Java 开发人员,您无需对 Groovy 有太多了解即可正确使用它并使用它编写出色的单元测试。

于 2013-03-20T16:04:27.623 回答