2017-11-26 17 views
0

クラスパスの.propertiesファイルからプロパティをロードするために使用されるクラス@Componentクラスがあります。クラスは次のようになります。Spring PropertySourceがテストでロードされていません。

@Component 
@ConfigurationProperties("mail") 
@PropertySource("classpath:config.properties") 
public class MailProperties { 
    private String user; 

    public void setUser(String user) { 
     this.user = user; 
    } 

    public String getUser() { 
     return this.user; 
    } 

} 

私は、上記のクラスのための単体テストを持つが、ユニットでuserプロパティをテストしていますそれは.propertiesファイルからロードされていないという意味、常にnullです。私はテスト/リソースの下で同じプロパティファイルを追加しようとしましたが、運もありません。

ここで何か問題がありますか?テストクラスは次のようになります。

@RunWith(SpringJUnit4ClassRunner.class) 
@TestPropertySource("classpath:config.properties") 
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = {MailProperties.class}) 
public class MailPropertiesTest { 

    @Autowired 
    private MailProperties mailProperties; 

    @Test 
    public void testUser() { 
     assertNotNull(this.mailProperties.getUser()); 
    } 
} 

答えて

0

ユーザーフィールドに@Valueアノテーションがありません。

@Value("${key.from.properties.file}") 
private String user; 

注釈をセッターに添付することもできます。

関連する問題