2016-11-21 10 views
0

私はspring-boot 1.4.0アプリケーションを作成しました。yamlファイルを使用して国際化したいと思います。SpringBootユニットのテスト構成

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-typesafe-configuration-propertiesのマニュアルに説明されているように、yamlファイルから構成をロードするためのクラスを作成しました。

私のクラスがyamlファイルのプロパティを正しく読み込んでいることを確認するテストを作成したいと思います。

yamlファイル(application.ymlとは別の名前)をロードするユニットテストを作成する方法と、getUsername()がyamlファイルから値を返すかどうかを確認する場合は、私はuserNameShouldBeCorrectテストに失敗した

@Component 
@ConfigurationProperties(locations = "classpath:mylocalizedprops.yml", prefix="connection") 
public class ConnectionProperties { 

    private String username; 

    // ... getters and setters 

} 

とテストクラス

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringBootTest(classes = Application.class) 
public class InternationalizationTest { 
    @Autowired 
    private ConnectionProperties connectionProperties; 

    public void propsShouldBeNotNull() { 
     assertNotNull(connectionProperties); 
    } 

    public void userNameShouldBeCorrect() { 
     assertEquals(connectionProperties.getUsername(), expectedUserName); 
    } 
} 

:ここ


は、私が持っているコードですが、それでもユーザ名をロードすることはできません。 mylocalizedprops.ymlファイルは、Maven構造化アプリケーションのsrc/main/resourcesフォルダにあります。

+0

ファイルは '/ src/test/resources'または' src/main/resources'にありますか? 'src/main/resources'にある場合は、それをテストリソースに入れるか、テストソースセットの一部としてメインソースセットをロードする必要があります。 – Adam

+0

これはsrc/main/resourcesにありますが、テスト目的でsrc/test/resourcesに作成するのが最善の方法だと思います。 – jerome

+0

ファイルをコピーして貼り付けます。欠点は、すべてを複製する必要があることです。 – Adam

答えて

1

これは、さまざまなコンポーネント間のやりとりをテストしているため、これは統合テストではなく、単体テストであると考えます。それにもかかわらず、ここで私はそれをやるだろう。

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = YourApplication.class) 
public class InternationalizationTests() { 

    @Autowired 
    ConnectionProperties connectionProperties; 

    @Test 
    public void testCorrectTranslationLoaded() { 
    Assert.assertEquals("english-username", connectionProperties.getUsername()); 
    }  

} 

ロードするロードを指定できるテスト設定を作成することもできます。異なる構成をテストするには、異なるクラスが必要です。ドキュメントを参照してください:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html

+0

ポストをコードで更新しましたが、ファイルを正しく読み込むことができません。 – jerome

関連する問題