首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Guice-servlet单元测试

Guice-servlet单元测试
EN

Stack Overflow用户
提问于 2015-01-04 04:31:22
回答 1查看 1.1K关注 0票数 2

背景:--我正在使用带有guice-servlet框架的guice开发servlet。我想通过以下方法测试servlet:

  1. Servlet 单元测试:通过提供get/post请求从其他依赖项中隔离Servlet并模拟客户端
  2. Servlet 集成测试:模拟客户端,但没有servlet隔离。此外,作为集成测试的一部分,我想测试我与Guice本身的集成。

问题:我正在寻找servlet测试框架,它允许我执行上述两种测试。

同时,我查看了HttpUnit,但没有找到将Guice连接到它的方法:servlet可以在ServletRunner中注册,但它们是由类名提供的。这意味着ServletRunner将实例化它们(而不注入依赖项)。

此外,我还找到了tadedon项目的GuiceServletMockModule。就像我要找的一样。但我不确定它是否还能维持。例如,我无法从他们的maven存储库中获取他们的maven包。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-04 22:40:37

为了对servlet (HttpServlet实例)进行单元测试,您不需要任何框架--您只需创建servlet类的新实例,并在传递模拟请求和响应对象时直接调用所需的方法。

如果您需要将您的代码与Guice依赖项隔离开来,您可以使用配置了mocks的Injector (在@ code方法中)创建类的实例,例如:

代码语言:javascript
复制
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测试。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27762386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档