почему тестовый класс не устанавливает активные профили с помощью spring boot 2.5.5?

#spring #spring-boot #spring-mvc

Вопрос:

В приложении spring boot 2.5.5 в тестовом классе я пытаюсь прочитать свойство из среды. Когда я пытаюсь выполнить отладку, и контроллер переходит к TradeController…environment.getProperty(«spring.profiles.active»); возвращает значение null.

Ниже приведен класс, который я хочу протестировать

 @RestController public class TradeController{   @Autowired  private TradeServiceImpl tradeServiceImpl;     @Autowired  private Environment environment;   @GetMapping("/getTrade")  public ResponseEntitylt;Stringgt; getTrade(@PathVariable final String   tradeId){  if(StringUtils.isNotBlank(tradeId){  String profile = environment.getProperty("spring.profiles.active");  }   Listlt;Tradegt; trades = tradeServiceImpl.getAllTrades(tradeId);  }  }  

а ниже приведен тестовый класс.

Будет ли @ActiveProfiles(«тест») в приведенном ниже тесте устанавливать spring.profiles.active=тест ?

Когда я запускаю тест , environment.getProperty(«spring.profiles.active»); в TradeController возвращает значение null. Однако переменная enviorment в TradeController выглядит следующим образом enviornment={Стандартная среда@746}»Стандартная среда{Активные профили=[тест],….}

Это прекрасно работает, когда я запускаю тест на spring boot 2.2.8-РЕЛИЗ, environment.getProperty(«spring.profiles.active»); в TradeController возвращает тест. Я в замешательстве, почему это работает с spring boot 2.2.8, а не с 2.5.5.?

Я что-нибудь упускаю?

 @RunWith(SpringJUnit4ClassRunner.class) @WebMvcTest(value = TradeController.class) @ActiveProfiles("test) class TradeControllerTest{  @Autowired  private MockMvc mockMvc;     @MockBean  private TradeServiceImpl tradeServiceImpl;   @Mock  private ConfigurableEnvironment enviroment;   @Before  public void setup(){  MockitoAnnotations.initMocks(this);  }   @Test  public void test() throws Exception{  Mockito.doNothing().when(tradeServiceImpl).getAllTrades(any());  RequestBuilder requestBuilder = MockMvcRequestBuilder.get(new   URI("/getTrades")).accept(MediaType.APPLICATION_JSON);  MvcResult result = mockMvc.perform(requestBuilder).andReturn();  assertEquals(result.getResponse().getStatus(), 400);  }  }   

My pom looks below spring dependencies .. spring boot is 2.5.5

 lt;dependencygt;  lt;groupIdgt;org.springframework.bootlt;/groupIdgt;  lt;artifactIdgt;spring-boot-starter-webgt;lt;/artifactIdgt; lt;dependencygt; lt;dependencygt;  lt;groupIdgt;org.springframework.bootlt;/groupIdgt;  lt;artifactIdgt;spring-boot-starter-actuatorgt;lt;/artifactIdgt; lt;dependencygt; lt;dependencygt;  lt;groupIdgt;org.springframework.bootlt;/groupIdgt;  lt;artifactIdgt;spring-boot-starter-jdbcgt;lt;/artifactIdgt; lt;dependencygt; lt;dependencygt;  lt;groupIdgt;org.springframework.bootlt;/groupIdgt;  lt;artifactIdgt;spring-boot-starter-retrygt;lt;/artifactIdgt; lt;dependencygt; lt;dependencygt;  lt;groupIdgt;org.springframework.bootlt;/groupIdgt;  lt;artifactIdgt;spring-boot-starter-testgt;lt;/artifactIdgt; lt;dependencygt;  lt;dependencygt;  lt;groupIdgt;org.springframeworklt;/groupIdgt;  lt;artifactIdgt;spring-webgt;lt;/artifactIdgt;  lt;versiongt;5.3.11lt;/versiongt; lt;dependencygt;