【发布时间】:2014-11-09 11:04:39
【问题描述】:
我正在为一个 Bean 编写单元测试,该 Bean 有一些使用 spring 自动装配的属性。
这是豆子:
public class Goober {
@Autowired
private ObjectX prop1;
@Autowired
private ObjectY prop2;
//... rest of object
}
在我的单元测试中,我想使用 jmockit 模拟 prop1,但通过 spring 注入 prop2。这是我的测试的样子:
@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 自动装配。如果我从测试中删除 @Autowired 注释,那么 prop1 将被模拟,但 prop2 将为空。
如何使用 jMockit 在 Goober 中注入一个属性,并自动装配另一个?
【问题讨论】:
标签: java spring unit-testing junit jmockit