泽西岛1.19测试配置-模拟类 [英] Jersey 1.19 Test configuration - mock classes

查看:160
本文介绍了泽西岛1.19测试配置-模拟类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用以下方法测试我的REST服务:

I want to test my REST service with:

<dependency>
   <groupId>com.sun.jersey.jersey-test-framework</groupId>
   <artifactId>jersey-test-framework-grizzly2</artifactId>
   <version>1.19</version>
   <scope>test</scope>
</dependency>

我有配置类:

public class MyServiceTest extends JerseyTest {

    @Override
    protected int getPort(int defaultPort) {
        return 8080;
    }

    public static class AppConfig extends DefaultResourceConfig {
        public AppConfig() {
            super(MyService.class);
        }
    }

    @Override
    public WebAppDescriptor configure() {
        return new WebAppDescriptor.Builder()
        .initParam(WebComponent.RESOURCE_CONFIG_CLASS, 
                AppConfig.class.getName())
                .build();
    }

    public MyServiceTest(){

    }
}

MyService.java是已注入DAO和其他服务的REST端点.在MyService.java中有针对他们的设置器,用于模拟目的.如何为MyService实例提供设置/模拟的相关类?

MyService.java is REST endpoint which has injected DAO and other services. There are setters for them in MyService.java for mocking purposes. How to provide MyService instance with set/mocked related classes?

推荐答案

它与

public static class AppConfig extends DefaultResourceConfig {
    public AppConfig() {

        MyService myService = new MyService();
        MyDAO myDAO = mock(MyDAO.class);
        myService.setMyDAO(myDAO);

        getSingletons().add(new ExceptionMapperProvider()); 
        getSingletons().add(myService);
    }
}

这篇关于泽西岛1.19测试配置-模拟类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆