以下の例は正しく動作します。問題は私が@InjectMocks
注釈が必要なことです。 SpringJUnit4ClassRunner.class
をMockitoJUnitRunner.class
に置き換えると、すべてが壊れる(testValue
の代わりにbar = null
)。Spring統合テスト:MockitoJUnitRunnerを使用して@Valueを挿入します
修正方法?
//@RunWith(MockitoJUnitRunner.class) // not work (
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = FooTest.Config.class)
@TestPropertySource(properties = {
"some.bar.value=testValue",
})
public class FooTest {
@Value("${some.bar.value}")
String bar;
@Test
public void testValueSetup() {
assertEquals("testValue", bar);
}
@Configuration
static class Config {
@Bean
public static PropertySourcesPlaceholderConfigurer propertiesResolver() {
return new PropertySourcesPlaceholderConfigurer();
}
}
}