无法将服务注入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 (将#修改为@)