gpt4 book ai didi

spring - 在集成测试期间无法解析占位符属性

转载 作者:行者123 更新时间:2023-12-05 06:43:23 27 4
gpt4 key购买 nike

我正在使用 spring 进行集成测试。

我有 AppA。这确实有属性文件来加载 bean 属性。对于单元测试,我创建了 AppATestContext 并使用 @propertySource 添加了这个属性文件。此 AppA 的单元测试工作正常。

我已将 AppA-test.jar 包含到 BigApp 中。我正在尝试为 BigApp 编写单元测试。我已将 AppATestContext 包含到 BigApp 测试上下文中。现在,当我运行 bigApp 单元测试时,出现“无法解决占位符错误”。

为什么 AppAtestContext 应该加载具有正确属性的 bean?我失踪的地方。

同时,如果我将 AppA 的属性文件包含到 BigApp 的占位符配置器中,它就可以正常工作。

更新

AppAtestContext.java

@PropertySource("app.properties")
class AppTestContext{
//propertyPlaceholderConfigurer bean declaration.
}

BigAppTestContext.xml

<bean class="AppAtestContext.java"/>

BigAppTest.java

@ContextHierarchy{@ContextConfiguration={BigAppTestContext.xml})
class SomeTest{
}

此测试不会将 app.properties 放入 AppA 项目中定义的 bean。

最佳答案

由于您没有提供任何代码,我将提供一个通用的答案...

我所有的测试都使用这个配置运行,以确保隔离是完美的:

@RunWith(SpringJUnit4ClassRunner.class)
@Configurable
@ImportResource({ "classpath:/testContext-basic.xml" })

@ContextConfiguration(classes = { MyTest.class, AnyDependancy.class })

确保在上下文中包含您的测试,以便 Spring 扫描 bean。

testContext-basic 只是:

<context:annotation-config />

然后你就可以模拟你的 bean 了:

@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}

@Bean
public MyMock getMyMock() {
return Mockito.mock(MyMock.class);
}

关于spring - 在集成测试期间无法解析占位符属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33788771/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com