Spring bean из тестового профиля в тестовом классе JUnit 5 не вводится - PullRequest
0 голосов
/ 06 ноября 2018

Я хотел бы использовать в моем jUnit 5 классе тестирования

@SpringBootTest
@RunWith(JUnitPlatform.class)
@ActiveProfiles("localtest")
class WorkreportDbRepositoryTest {

  @Autowired
  private SystemPriceSettingService systemPriceSettingService;

// the rest omitted .... 

}

компонент, созданный в конфигурации для среды тестирования:

@Profile("localtest")
@Configuration
public class TestConfig {

  @Bean
  public SystemPriceSettingService systemPriceSettingService(){
    return new MemoryPriceSettingService();
  }

}

Но боб SystemPriceSettingService вводится , а не . Что не так с моей настройкой?

1 Ответ

0 голосов
/ 06 ноября 2018

Вы не используете JUnit Runner, который поддерживает Spring. Таким образом, контекст Spring не создается.
Вам следует заменить его аннотациями на тестовый класс, такими как:

import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.test.context.junit.jupiter.SpringExtension;

@SpringBootTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles("localtest")
class WorkreportDbRepositoryTest { ...}

И добавьте эту зависимость, чтобы иметь возможность использовать SpringExtension:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-junit-jupiter</artifactId>
    <version>2.18.0</version> <!-- your mockito version-->
    <scope>test</scope>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...