此问题在此处已有答案:
Spring not autowiring in unit tests with JUnit(6个答案)
3天前关闭。
我是Java Spring的新手,我尝试设置了2个类和一个测试,这是我的项目结构:
下面是这些类的代码:
@Component
public class Box {
private Item item;
@Autowired
public Box(Item item) {
this.item = item;
}
public Item getItem() {
return item;
}
}
@Configuration
@ComponentScan
public class BoxConfig {}
@Component
public class Item {}
下面是我在BoxTest类中编写的JUnit测试代码:
@ContextConfiguration(classes = {BoxConfig.class})
public class BoxTest {
@Autowired
Box box;
@Test
public void BoxTest1() {
Assertions.assertNotNull(box.getItem());
}
}
我的期望是,Spring会自动将一个box对象注入到Test的box属性中,但是box属性总是null,所以我一直收到NullReferenceException。有人知道为什么它没有正确初始化吗?
1条答案
按热度按时间lb3vh1jj1#
BoxTest需要以某种方式包含在Spring配置中。例如,使用
@ExtendWith(SpringExtension.class)
会有所帮助。您可以在Spring文档中查看其他选项。