gpt4 book ai didi

java - 运行 junit 作为服务器并注入(inject)更改?

转载 作者:行者123 更新时间:2023-12-01 15:52:04 28 4
gpt4 key购买 nike

出于某些测试目的,如果每次测试运行都不必重新启动我的 jetty 服务器,那就太棒了。

使用 jrebel,我可以直接应用源代码更改。

是否可以以一种可以动态注入(inject)更改然后重新运行测试而无需重新启动服务器的方式运行我的jetty服务器?

最佳答案

这取决于您想要注入(inject)的更改类型。

话虽如此,我相信这里还有更深层次的问题。从测试质量的角度来看,重新启动 Jetty 是正确的做法。它确保每个测试都从干净的页面开始,从而最大限度地减少测试间依赖的风险。另一方面,这成本高昂(时间方面)并且会使您的套件运行速度变慢。

如果我是您,我会按如下方式解决这个问题:我将重构我想要测试的代码(可能是 servlet),以便它们不依赖于 Jetty 基础设施,并且可以独立运行。例如,如果我有一个 servlet 类 SomeServlet 及其 doGet() 方法,我将重构它,使其实现 MyServelt,其 >goGet() 接受 MyRequestMyResponse 参数。

完成此操作后,您可以在没有 Jetty 服务器的情况下对 MyServlet 进行单元测试。这不仅可以让您更快地进行测试,还可以简化调试 session 并使您的组件更加解耦。当然,您需要添加一些管道代码:一个将Servelt接口(interface)适配为MyServelt对象的类(通过委托(delegate))。

关于java - 运行 junit 作为服务器并注入(inject)更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5820338/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com