我在Jerse Resources和Spring interation中使用@Autowire。现在我希望能够使用mock 自动装配字段上的对象。,
我能够在Jersey 1.17中做到这一点,但在2.2上我找不到任何文件。
我已经厌倦了这样的事情 Jersey 2.*. How to replace InjectableProvider and AbstractHttpContextInjectable of Jersey 1.*
在设置容器时提供了自己的SpringComponent。但是这可以工作。
Example:
@Path("/myresource")
public class MyResource {
@Autowired
private ConfigurationApi configurationApi;
@GET
@Produces("text/plain")
public String getIt() {
boolean isTrue = configurationApi.isEnabled("aconfig");
return "Hi there!: configuration is " + isTrue;
}
在球衣1.17中,我可以做这样的事情:
return new WebAppDescriptor.Builder("rest.resource")
.contextPath("application")
.servletClass(SpringServlet.class)
.servletPath("api")
.contextParam("contextClass", "rest.resource.test.spring.MockableContext")
.contextParam(SpringServlet.CONTEXT_CONFIG_LOCATION, "context.poc-test.xml")
.contextListenerClass(ContextLoaderListener.class)
.build();
然后在实际测试中,我可以通过哈希映射将模拟对象添加到上下文类中。
任何帮助都是适当的。