我试图将application-test.yaml中的列表加载到类中,但它不起作用。
这就是我的 application-test.yaml 的样子:
category-merchandiser:
-
username: test
password: blas3cret
roles:
- test
- admin
这是我的班级:
@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 **
这就是我试图测试列表大小是否为2的方式:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = CategoryMerchandiserUsersConfig.class)
public class CategoryMerchandiserUsersTest {
@Autowired
CategoryMerchandiserUsersConfig config;
@Test
public void shouldLoadApplicationYamlToClass() {
assertThat(config.getUsers().size(), is(2));
}
}
我的控制台输出告诉我列表为空:
java.lang.AssertionError:
Expected: is <2>
but: was <0>
Expected :is <2>
Actual :<0>
我做错了什么?希望你们能帮助我。
答案 0 :(得分:0)
如果您修改yml以匹配您的配置文件,它应该可以正常工作。
category-merchandiser:
users:
- username: test
password: blas3cret
roles:
- test
- admin
答案 1 :(得分:0)
有效!我的问题是我没有应用程序上下文。所以我把测试移到了集成测试目录中。就是这样。