我想测试一个类像嘲讽配置值测试使用的弹簧
@Controller
public class FailureController {
@Value("#{configValues.defaultRedirectUrl}")
private String defaultRedirectUrl;
public FailureController (String defaultRedirectUrl) {
this.defaultRedirectUrl = defaultRedirectUrl;
}
...
的问题是,我不能没有测试类创建一个特殊的构造测试这个类(如上面)类时,它最终将初始化中的defaultRedirectUrl
。
如何在测试过程中无需创建构造函数(即将来自spring上下文)来测试它。我的主要目标是在运行测试时在没有构造函数的情况下初始化FailureController
中的值。
是否有可能以某种方式Spring上下文测试期间被加载和初始化在FailureController 领域这是我一直在做,但它不工作,defaultRedirectUrl
保持FailureController
null
。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/applicationContext-test.xml" })
public class FailureControllerTest {
@Autowired
FailureController failureController;
的applicationContext-的test.xml
...
<bean id="failureController" class="se.synergica.watchtower.controllers.FailureController">
</bean>
<import resource="spring-config-test.xml" />
</beans>
谢谢。 al
谢谢你,我想,我不明白你的意思...... AClassToBeTest中的Url字段会被初始化吗?我猜这不会。不是@ContextConfiguration用于仅为测试加载上下文即AClassToBeTestTest,而不是用于正在测试的类即AClassToBeTest?我已经编辑了一些我的问题。 – Deam
重点在于你有一个由测试应用程序上下文实例化的AClassToBeTest。所以应该在applicationContext-test.xml中定义AClassToBeTest。你将这个实例注入到你的单元测试中,它应该像在正常运行时一样被初始化。与运行时唯一不同的是,您可以使用不同的弹簧上下文,您可以在其中加载用于测试值的不同属性文件或类似的东西。 – rompetroll
由于某种原因,它不起作用。你能帮我吗?我编辑了这个问题。 – Deam