首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NullPointerException: Junit Spring注解配置

NullPointerException: Junit Spring注解配置
EN

Stack Overflow用户
提问于 2018-06-09 05:50:16
回答 1查看 56关注 0票数 1

我正在学习Spring框架和using this reference

我有一个UkranianSongs

代码语言:javascript
复制
import javax.annotation.Nonnull;

public class UkrainianSongs implements CompactDisk{
    @Override
    @Nonnull
    public String getTitle(){
        return "Ukranian Songs";
    }

    @Override
    @Nonnull
    public String getArtist(){
        return "Skriabin";
    }
}

我在CDPlayerConfig类中创建了一个bean

代码语言:javascript
复制
@Configuration
@ComponentScan
public class CDPlayerConfig {

    @Bean
    public CompactDisk anUkranianDisk(){
        return  new UkrainianSongs();
    }
}

并且我正在另一个类中自动安装光盘类

代码语言:javascript
复制
@Component
public class CompactDiskBox {

    @Autowired
    public CompactDisk anUkrainianDisk;
} 

我编写了一个JUnit测试,其中我试图断言anUkranianDisk bean已正确初始化并且不为空

代码语言:javascript
复制
@RunWith(JUnit4.class)
@ContextConfiguration(classes = CDPlayerConfig.class)
public class CompactDiskBoxTest {
    @Autowired(required = true)
    public CompactDiskBox compactDiskBox;

    @Test
    public void testUkranianDisk(){
        assertNotNull(compactDiskBox.anUkrainianDisk);
    }
} 

这会抛出一个NullPointerException,因为compactDiskBox是空的,这意味着它不能正确地初始化bean。我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-06-09 06:18:21

为了能够在单元/集成测试中使用依赖注入,您必须设置Spring TestContext Framework。为此,您应该使用SpringJUnit4ClassRunner.classSpringRunner.class运行测试。SpringRunner.class只是SpringJUnit4ClassRunner.class的一个别名。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50768813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档