微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将服务注入Pact JVM使用者测试

如何解决无法将服务注入Pact JVM使用者测试

我们的应用程序提供了一个触发REST请求的类方法。这是MyService的简化版本。

@Stateless
public class MyService {

    private static final String MAIL_SERVICE_RESOURCE = "mail";
    private static final String MAIL_SERVICE_URL = get("notification.service.url");

    @Inject
    private FileStorage storage;

    @Inject
    private GenericDao genericDao;

    @Inject
    private ServletContext servletContext;

    private Client client;
    private WebTarget target;

    @postconstruct
    private void init() {
        this.client = newClient();
        this.target = client.target(MAIL_SERVICE_URL).path(MAIL_SERVICE_RESOURCE);
    }

    @PreDestroy
    private void destroy() {
        this.client.close();
    }
    
    public void sendRequest() {
        target.request().post(entity(mailNotification,APPLICATION_JSON_TYPE)).close();
    }
}

从单元测试(Pact JVM使用者测试)开始,我想调用方法,然后该方法将针对Pact模拟服务器触发请求。但是我有一些麻烦:

  • 不可能使用@Inject private MyService myService;将此服务注入到Pact消费者测试中。
  • 我的下一个想法是使用Mockito创建模拟实例,但是我遇到的问题是clienttargetnull,因为init()似乎并不被叫到。
  • 即使被调用,我如何“配置”这个私有的target来使用我的本地模拟服务器?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。