J'ai un contrôleur qui ajoute des attributs de application.properties
à un objet Model
:Spring Boot - Comment tester cet attribut de modèle a été ajouté à partir du fichier de configuration?
@Value("${products}")
private String prod;
@GetMapping("/")
public String greetingForm(Model model) throws IOException {
List<String> products = Arrays.asList(prod.split("\\s*,\\s*"));
model.addAttribute("products",products);
return "form";
}
Comment puis-je tester cette méthode? Je suis relativement nouveau aux tests unitaires, donc tout conseil serait apprécié. Je sais que je dois simuler Model
mais à chaque fois que j'essaie d'exécuter mon test, j'obtiens un NullPointerException
.
Mon test:
private MockMvc mockMvc;
@MockBean
private Model model;
@Before
public void setUp() {
this.mockMvc = MockMvcBuilders.standaloneSetup(new WebController()).build();
}
@Test
public void testHomeRoute() {
try {
List<String> products = new ArrayList<String>();
products.add("Product1");
products.add("Product2");
mockMvc.perform(get("/"))
.andExpect(MockMvcResultMatchers.view().name("form"))
.andExpect(MockMvcResultMatchers.model().attribute("products",products));
;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Merci à l'avance.