2017-05-11 12 views
2

いくつかの設定プロパティを持つSpring起動アプリケーションがあります。いくつかのコンポーネントのテストを作成しようとしていて、test.propertiesファイルから構成プロパティをロードしたいとします。私はそれを働かせることはできません。ここで設定プロパティがSpringテストで読み込まれない

は私のコードです:(SRC /テスト/リソース下)

test.propertiesファイル:

vehicleSequence.propagationTreeMaxSize=10000 

設定のプロパティクラス:

package com.acme.foo.vehiclesequence.config; 

import javax.validation.constraints.NotNull; 

import org.springframework.boot.context.properties.ConfigurationProperties; 
import org.springframework.stereotype.Component; 

@Component 
@ConfigurationProperties(prefix = VehicleSequenceConfigurationProperties.PREFIX) 
public class VehicleSequenceConfigurationProperties { 
    static final String PREFIX = "vehicleSequence"; 

    @NotNull 
    private Integer propagationTreeMaxSize; 

    public Integer getPropagationTreeMaxSize() { 
     return propagationTreeMaxSize; 
    } 

    public void setPropagationTreeMaxSize(Integer propagationTreeMaxSize) { 
     this.propagationTreeMaxSize = propagationTreeMaxSize; 
    } 
} 

私のテスト:

@RunWith(SpringRunner.class) 
@ContextConfiguration(classes = VehicleSequenceConfigurationProperties.class) 
@TestPropertySource("/test.properties") 
public class VehicleSequenceConfigurationPropertiesTest { 

    @Autowired 
    private VehicleSequenceConfigurationProperties vehicleSequenceConfigurationProperties; 

    @Test 
    public void checkPropagationTreeMaxSize() { 
     assertThat(vehicleSequenceConfigurationProperties.getPropagationTreeMaxSize()).isEqualTo(10000); 
    } 
} 

構成プロパティー・クラスのプロパティーpropagationTreeMaxSizeが設定されていないことを意味する "実際にはnullが必要でないことを期待して"テストが失敗します。

答えて

3

質問を投稿して2分後、私は答えを見つけました。

私は@EnableConfigurationProperties(VehicleSequenceConfigurationProperties.class)で構成プロパティを有効にする必要がありました:

@RunWith(SpringRunner.class) 
@TestPropertySource("/test.properties") 
@EnableConfigurationProperties(VehicleSequenceConfigurationProperties.class) 
public class VehicleSequenceConfigurationPropertiesTest { 

    @Autowired 
    private VehicleSequenceConfigurationProperties vehicleSequenceConfigurationProperties; 

    @Test 
    public void checkPropagationTreeMaxSize() { 
     assertThat(vehicleSequenceConfigurationProperties.getPropagationTreeMaxSize()).isEqualTo(10000); 
    } 
} 
関連する問題