使用groovy为Java应用程序编写集成测试有什么好处? - java

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。

7年前关闭。

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

我知道时髦是

  • 易于与Java集成
  • 快速编写代码
  • 但是,是否有任何特定的理由将其用于IT?在您的代码库中添加另一种编程语言不会让您过上 hell ?我想我在图片中遗漏了一些东西,因此,感谢您的答复。

    参考方案

    我很快将开始一个与您的堆栈完全相同的项目,但是Groovy还将出现在生产代码中,不仅是测试。

    将Groovy添加到您的代码库中没有问题,因为它是一种简单的语言。如果您包括某种看起来不太像java的语言,比如haskell或prolog,那将是另一回事。您已经包括Facelets,EL,CSS,HTML和Javascript。添加另一种语言的哪一部分不好? 🙂

    我在IT测试中对Groovy的要点是:

  • 易于编写断言和模拟数据;
  • 代码简洁;
  • 平滑的学习曲线;
  • 简洁的代码可操作类似于Geb的浏览器自动化程序;
  • Groovy中其他一些让人难以忘怀的东西:

  • 易于编写XML / JSON(例如,如果您需要测试Web服务);
  • 静态编译(如果需要);
  • 我们的最后两家公司中有测试团队,它们不使用生产代码,但是很快就开始用Groovy编写测试并享受这种语言:不用担心类型和东西,只需要工作测试即可!

    Java:线程池如何将线程映射到可运行对象 - java

    试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

    JAVA:字节码和二进制有什么区别? - java

    java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…

    java:继承 - java

    有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

    Java:BigInteger,如何通过OutputStream编写它 - java

    我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…

    Java DefaultSslContextFactory密钥库动态更新 - java

    我有一个使用org.restlet.engine.ssl.DefaultSslContextFactory的现有应用程序和一个在服务器启动时加载的密钥库文件。我有另一个应用程序,该应用程序创建必须添加的证书服务器运行时动态地更新到密钥库文件。为此,我在代码中创建了证书和私钥,然后将其写入到目录。该目录由bash脚本监视,该脚本检查是否有新文件,如果出现,它将…