gpt4 book ai didi

java - 仅注入(inject)一些属性,模拟其他属性

转载 作者:行者123 更新时间:2023-11-30 09:02:53 26 4
gpt4 key购买 nike

我正在为一个使用 spring Autowiring 一些属性的 Bean 编写单元测试。

这是 bean :

public class Goober {

@Autowired
private ObjectX prop1;

@Autowired
private ObjectY prop2;


//... rest of object
}

在我的单元测试中,我想使用 jmockit 模拟 prop1,但 prop2 由 spring 注入(inject)。这是我的测试结果:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/applicationContext-test.xml" })
public class GooberUT extends TestCase{

@Tested @Autowired
Goober goober;

@Test
public void gooberTest (@Injectable prop1) {


// .. test and whatnot here
}


// .. setup/teardown etc
}

这里的问题是 prop1 将由 spring Autowiring 。如果我从测试中删除 @Autowired 注释,那么 prop1 将被模拟,但 prop2 将为空。

如何使用 jMockit 在 Goober 中注入(inject)一个属性,并 Autowiring 另一个属性?

最佳答案

您可以让 Spring 注入(inject) prop1,然后使用 ReflectionTestUtils 的 setProperty 方法覆盖 prop1 值,并以编程方式注入(inject)您喜欢的任何内容。

关于java - 仅注入(inject)一些属性,模拟其他属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25856210/

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