Java Spring依赖关系注入不起作用[重复]

6uxekuva  于 2023-03-11  发布在  Spring
关注(0)|答案(1)|浏览(131)

此问题在此处已有答案

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。有人知道为什么它没有正确初始化吗?

lb3vh1jj

lb3vh1jj1#

BoxTest需要以某种方式包含在Spring配置中。例如,使用@ExtendWith(SpringExtension.class)会有所帮助。
您可以在Spring文档中查看其他选项。

相关问题