gpt4 book ai didi

java - 如何避免 SpringJUnit4ClassRunner 在使用 JMockit 模拟之前初始化 bean?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:30:32 26 4
gpt4 key购买 nike

我有一个像这样的 JUnit 测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration( locations = { "beanDefinitions.xml"})
public class MyTest {

@Mocked private SomeDependency usedInSpringContext;

@Test public void letsTest() {
...
}
}

问题是,Spring runner 在 JMockit 有机会模拟它们之前加载它的 beans。如何避免?这是 JMockit 1.0 和 Spring 3.07。我宁愿让我的 beanDefinitions.xml 保持不变。

被测代码是遗留的。它包含许多我无法轻易摆脱的硬编码 spring 依赖项。因此,第一步 - 模拟。

最佳答案

您可以使用自定义 FactoryBean。

这在blog中有解释.和 here是示例代码。

它使用 easymock 或 Mockito。但我相信您可以轻松地将其移植到 JMockit。

编辑:我忽略了您不希望修改 beanDefinitions.xml。但我的建议包括该修改。

关于java - 如何避免 SpringJUnit4ClassRunner 在使用 JMockit 模拟之前初始化 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14713976/

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