测试带有弹簧@Value

时间:2016-11-11 16:48:43

标签: java spring jersey jersey-test-framework

我正在尝试使用Jersey并将其与Spring集成,以便在我们的spring web-app中使用jax-rs端点。

我遇到的问题是我们的单元测试中没有填充使用@Value注释的应用程序成员。

使用@Autowired填充的那些工作正常,如果我为字符串创建一个setter方法并使用@Value注释也可以。

令我很恼火的是,直接使用@Value注释的成员在测试中不起作用,但在我们的tomcat中部署时可以正常工作。

这是我们的测试配置有问题吗?或者这是某个已知的问题?

这些是我认为的相关依赖:

<dependency>
    <groupId>org.glassfish.jersey.ext</groupId>
    <artifactId>jersey-spring3</artifactId>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.test-framework</groupId>
    <artifactId>jersey-test-framework-core</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.test-framework.providers</groupId>
    <artifactId>jersey-test-framework-provider-jetty</artifactId>
    <scope>test</scope>
</dependency>

一个小项目,例如: https://github.com/alexanderkjall/jersey-jetty-interaction-example/blob/master/src/main/java/no/hackeriet/bugs/SpringRequestResource.java

1 个答案:

答案 0 :(得分:1)

似乎你可能会丢失组件扫描,添加后它对我来说很好。

<context:component-scan base-package="no.hackeriet.bugs" /> 

但我不确定它如何在没有组件扫描的tomcat中仍然有效,这让我很困惑。