gpt4 book ai didi

java - 如何在 JUnit 测试中强制 Autowiring ?

转载 作者:行者123 更新时间:2023-12-01 05:20:01 38 4
gpt4 key购买 nike

我正在使用 Spring 3.1.0.RELEASE 和 JUnit 4.8.1。我无法弄清楚为什么类的成员字段在 JUnit 测试中没有 Autowiring 。我的测试看起来像...

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "file:src/test/resources/testApplicationContext.xml" })
@TransactionConfiguration(defaultRollback=true)
@Transactional
public abstract class NowYouKnowEventsParserTest {

private EventFeed eventFeed;

@Before
public void setUp() {
eventFeed = getEventFeed(16);
} // setUp

@Test
public void testParser() {
Assert.assertNotSame(0, eventFeed.getEvents().size());
} // testParser

...
@Autowired
private EventFeedsDao eventFeedsDao;

protected EventFeed getEventFeed(final Integer id) {
return eventFeedsDao.findById(id);
} // getEventFeed
}

“EventFeed”类调用以下类的实例...

package com.myco.myproject.parsers;
...
public abstract class AbstractEventParser {

@Autowired
protected NetUtilsService netUtilsService;
...
}

但是到了时候,AbstractEventParser 的“netUtilsService”成员字段为空。这很奇怪,因为在我的“testApplicationContext.xml”文件中,我有这个,我认为它会处理 Autowiring ......

<mvc:annotation-driven />
<context:component-scan base-package="com.myco.myproject" />

如何在 JUnit 测试中强制 Autowiring ?我不想为成员字段添加和调用 setter 方法,但如果这是唯一的方法,那就这样吧。

最佳答案

EventFeed 类是由 Spring 管理的吗,我的意思是使用 @Service@Component 注释的 EventFeed 类。此外,您还需要在测试权限中执行 EventFeed@Autowired 。我在您的 AbstractParsetTest

中没有看到这一点

关于java - 如何在 JUnit 测试中强制 Autowiring ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10557215/

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