问题描述
我们的应用程序提供了一个触发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创建模拟实例,但是我遇到的问题是
client
和target
是null
,因为init()
似乎并不被叫到。 - 即使被调用,我如何“配置”这个私有的
target
来使用我的本地模拟服务器?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)