NullPointerException: настройка аннотации Junit Spring - PullRequest
0 голосов
/ 09 июня 2018

Я изучаю Spring Framework и по этой ссылке ,

У меня есть 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";
    }
}

Я создаю компонент в CDPlayerConfigclass

@Configuration
@ComponentScan
public class CDPlayerConfig {

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

И я автоматически подключаю класс компакт-диска к другому классу

@Component
public class CompactDiskBox {

    @Autowired
    public CompactDisk anUkrainianDisk;
} 

Я написал тест JUnit, в котором я пытаюсь утверждать, что компонент anUkranianDisk инициализирован правильно и неnull

@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 равен нулю, что означает, что он не может инициализировать бин справа.Я что-то здесь упускаю?

1 Ответ

0 голосов
/ 09 июня 2018

Чтобы иметь возможность использовать внедрение зависимостей в ваших модульных / интеграционных тестах, вы должны установить Spring TestContext Framework.Для этого вы должны запустить свои тесты с SpringJUnit4ClassRunner.class или SpringRunner.class.SpringRunner.class это просто псевдоним для SpringJUnit4ClassRunner.class.

...