0

出于某些测试目的,不必为每次测试运行重新启动我的码头服务器会很棒。

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

是否可以以我可以动态注入更改然后重新运行测试而无需重新启动服务器的方式运行我的码头服务器?

4

1 回答 1

1

这取决于您要注入的更改类型。

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

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

一旦你这样做了,你就可以在MyServlet没有 Jetty 服务器的情况下进行单元测试。这不仅可以让您更快地进行测试,还可以简化调试会话并使您的组件更加解耦。当然,您需要添加一些管道代码:一个将servelt 接口适配为MyServelt 对象的类(通过委托)。

于 2011-04-28T15:02:26.987 回答