SpringBootTestでのapplication.propertiesの設定を変更する

SpringBootTestでapplication.propertiesの値を設定する

SpringBootTestでapplication.propertiesの値を変更する方法は以下の通りとなります。

application.properties

今回対象とするapplication.propertiesの項目は以下の通りとなります。

...
foo.bar.enable=false
...

通常のテストを実行するときにはfoo.bar.enableの値はfalseとしますが、今回のテスト対象実行時のみtrueへ設定することを想定します。

SpringBootTest

SpringBootTestでテスト実行時にapplication.propertiesのfoo.ba.enableの値をtrueに設定するには、以下の通りSpringBootTestアノテーションのpropertiesfoo.bar.enable=trueのように設定します。複数の項目を指定するときにはカンマで区切ることで設定可能となります。

package ...

@Slf4j
@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT,
        properties = { "foo.bar.enable=true" })
public class SampleTest {
  ...
}

これにより、SampleTest実行時にはfoo.bar.enableの値はtrueが設定されるようになります。

参考

The @SpringBootTest annotation also has a properties attribute that can be used to specify any additional properties that should be defined in the Environment. Properties are now loaded in the exact same way as Spring’s regular @TestPropertySource annotation.

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発