Это не весна, это просто неправильный подход.Как я вижу, проблема в этой части кода: when(environment.acceptsProfiles(Profiles.of("adrian"))).thenReturn(true);
Вы используете mock для Environment
и пытаетесь поймать экземпляр класса Profiles
, что-то вроде: .acceptsProfiles(eq(Profiles.of("adrian")))
.Вы не можете поймать его, потому что вы создаете другой экземпляр в методе boolean hello(String s)
, а Environment
никогда не возвращает true.
Вы только что описали некорректное поведение для макета Environment
, и вы можете это исправить:
положить any
@Test
public void testItWithMocklEnvironment() {
Environment environment = mock(Environment.class);
when(environment.acceptsProfiles(any(Profiles.class))).thenReturn(true);
ToBeTested toBeTested = new ToBeTested(environment);
assertTrue(toBeTested.hello("adrian"));
}
или не использовать макет (я думаю, это то, что вы ищете):
@Test
public void testItWithMocklEnvironment() {
Environment environment = new org.springframework.core.env.StandardEnvironment();
((StandardEnvironment) environment).setActiveProfiles("adrian");
ToBeTested toBeTested = new ToBeTested(environment);
assertTrue(toBeTested.hello("adrian"));
}