2017-09-28 6 views
0

J'essaie de charger une liste depuis application-test.yaml dans la classe, mais cela ne fonctionne pas.Test de la liste de lecture du fichier yaml dans l'objet de liste

Voici comment ma application test.yaml ressemble:

category-merchandiser: 
- 
    username: test 
    password: blas3cret 
    roles: 
    - test 
    - admin 

Et voici ma classe:

@Configuration 
@ConfigurationProperties(prefix = "category-merchandiser") 
public class CategoryMerchandiserUsersConfig { 

    private List<CategoryMerchandiser> users = new ArrayList<>(); 
    ** getters & setters ** 

    public static class CategoryMerchandiser { 

     private String username; 
     private String password; 
     private List<String> roles = new ArrayList<>(); 

    ** getters & setters ** 

Voilà comment je suis en train de tester si la taille de ma liste est 2:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = CategoryMerchandiserUsersConfig.class) 
public class CategoryMerchandiserUsersTest { 

    @Autowired 
    CategoryMerchandiserUsersConfig config; 

    @Test 
    public void shouldLoadApplicationYamlToClass() { 
     assertThat(config.getUsers().size(), is(2)); 
    } 
} 

Ma sortie de console me dit que le li st est vide:

java.lang.AssertionError: 
Expected: is <2> 
    but: was <0> 
Expected :is <2> 

Actual :<0> 

Qu'est-ce que je fais mal? J'espère que vous pouvez m'aider.

+0

Toute personne pouvant vous aider? :( – DevRock

Répondre

0

Cela fonctionne! Mon problème était que je n'ai pas de contexte d'application. J'ai donc déplacé les tests dans le répertoire de test d'intégration. C'est tout.

0

Si vous modifiez votre fichier yml pour qu'il corresponde à votre fichier de configuration, cela devrait fonctionner correctement.

category-merchandiser: 
    users: 
    - username: test 
     password: blas3cret 
     roles: 
     - test 
     - admin 
+0

J'ai essayé, mais cela ne fonctionne toujours pas.Toute autre suggestion? – DevRock

+0

Un problème avec lequel votre test ne fonctionne pas 1. Vous ne chargez pas les fichiers de propriétés @TestPropertySource Je ne suis pas sûr que vous pouvez charger un fichier Yaml Si vous écrivez et terminez et renvoyez les données de CategoryMerchandiserUsersConfig.getUsers() cela devrait fonctionner. – mdeterman