我正在学习Spring框架和using this reference,
我有一个UkranianSongs
类
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
@Configuration
@ComponentScan
public class CDPlayerConfig {
@Bean
public CompactDisk anUkranianDisk(){
return new UkrainianSongs();
}
}
并且我正在另一个类中自动安装光盘类
@Component
public class CompactDiskBox {
@Autowired
public CompactDisk anUkrainianDisk;
}
我编写了一个JUnit测试,其中我试图断言anUkranianDisk
bean已正确初始化并且不为空
@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。我是不是漏掉了什么?
发布于 2018-06-09 06:18:21
为了能够在单元/集成测试中使用依赖注入,您必须设置Spring TestContext Framework
。为此,您应该使用SpringJUnit4ClassRunner.class
或SpringRunner.class
运行测试。SpringRunner.class
只是SpringJUnit4ClassRunner.class
的一个别名。
https://stackoverflow.com/questions/50768813
复制相似问题