我正在回顾上Java 8到Java 11的迁移路径,在过去,GAE环境提供了优秀的单元测试支持和地方发展环境。
但是在新的Java 11运行时中,它们似乎缺失了,它们只是还没有准备好,还是还没有进入这个新的运行时?
测试页说:
若要在部署之前测试应用程序的功能,请使用通常使用的开发工具在本地环境中运行应用程序。
这似乎将问题带回给用户--但当部署到GAE时,为开发和单元测试进行本地运行时仿真非常重要。如果Java 11从未出现过,那么开发和测试Java 11运行时GAE应用程序的最佳/正确方法是什么?
发布于 2019-12-31 12:33:10
经过一些研究后,GAE本地开发环境的Java 8是独立的and和已经被否决了。的一部分。
在我看来,Java 11不会出现类似的工具集,至少目前是这样。
我想说的是,正如您所引用的Docs中所建议的那样,对于开发,您可以使用您喜欢的任何开发服务器。
至于单元测试。由于单元测试应该如何设计和实现,所以最好不要依赖其他软件来模拟GAE行为。相反,应该使用模拟和存根来向测试模块提供输入,从而使它们返回预期的响应。
发布于 2020-01-16 10:26:24
它们的默认本地环境和gae运行时基于Jetty。由于Java 11运行时,您现在需要选择自己的应用服务器,可以是Jetty、Spring、Quarkus、Helidon或其他许多应用服务器。
我选择了Grizzly服务器,因为我想使用泽西(默认的JAX实现),他们的榜样使用Grizzly。
我写了一篇关于我如何在Google上工作的博文:net/migrate-a-jersey-based-micro-service-to-java-11-and-deploy-to-app-engine-7ba41a835992
如果您想让测试正常运行,我在下面的标签中修复了我的博客示例中的测试:我的完整Java 11示例中只有一个可以在本地和应用程序引擎上运行的http请求,其中有一个示例单元测试:https://github.com/Leejjon/SimpleJerseyService/tree/1.1.1
https://stackoverflow.com/questions/59523141
复制相似问题