背景:--我正在使用带有guice-servlet框架的guice开发servlet。我想通过以下方法测试servlet:
问题:我正在寻找servlet测试框架,它允许我执行上述两种测试。
同时,我查看了HttpUnit,但没有找到将Guice连接到它的方法:servlet可以在ServletRunner中注册,但它们是由类名提供的。这意味着ServletRunner将实例化它们(而不注入依赖项)。
此外,我还找到了tadedon项目的GuiceServletMockModule。就像我要找的一样。但我不确定它是否还能维持。例如,我无法从他们的maven存储库中获取他们的maven包。
谢谢
发布于 2015-01-04 22:40:37
为了对servlet (HttpServlet实例)进行单元测试,您不需要任何框架--您只需创建servlet类的新实例,并在传递模拟请求和响应对象时直接调用所需的方法。
如果您需要将您的代码与Guice依赖项隔离开来,您可以使用配置了mocks的Injector (在@ code方法中)创建类的实例,例如:
Injector injector = Guice.createInjector( new AbstractModule() {
@Override
protected void configure() {
bind( MyClass.class ).toInstance( mock(MyClass.class) );
bind( AnotherClass.class ).toInstance( mock(AnotherClass.class) );
}
} );
//Create new instance of class that needs injections
ThirdClass thirdInstance = injector.getInstance( ThirdClass.class );至于集成测试,您可以尝试使用SoapUI --它适用于SOAP和REST应用程序,但您可以将其调整为通用servlet测试。
https://stackoverflow.com/questions/27762386
复制相似问题