如何解决无法将服务注入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创建模拟实例,但是我遇到的问题是
client
和target
是null
,因为init()
似乎并不被叫到。 - 即使被调用,我如何“配置”这个私有的
target
来使用我的本地模拟服务器?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。