Я написал приложение CRUD (Notebook), и теперь я учусь тестировать мой код. Я написал несколько тестов, используя макеты, но в этом случае Idk, как проверить, например, мой метод -> addNote. Я искал несколько страниц с тестированием CRUD, но я не нашел подобный код для этого.
Это мой контроллер:
@Controller
public class NoteController {
private NoteService noteService;
@Autowired
public NoteController(NoteService noteService) {
this.noteService = noteService;
}
@GetMapping("/notebook")
public String getNotebook(Model model)
{
model.addAttribute("notes",noteService.getNotes());
model.addAttribute("newNote",new Note());
return "main-view";
}
@PostMapping("/notebook/add-note")
public String addNote(Model model, @ModelAttribute Note note)
{
if(note.getTitle()==null || note.getTitle() == null)
{
model.addAttribute("errorMessage","You have to fill in the title and text, to save the note");
}
else {
noteService.saveNote(note.getTitle(), note.getText());
}
return "redirect:/notebook";
}
@GetMapping("/notebook/{id}")
public String getNoteById(Model model, @PathVariable Long id)
{
Note note = null;
try {
note = noteService.findNoteById(id);
}
catch (Exception e)
{
model.addAttribute("errorMessage","Note not found");
}
model.addAttribute("note", note);
return "show-note";
}
@RequestMapping(value = "/notebook/{id}/edit", method = {RequestMethod.POST,RequestMethod.GET})
public String editNoteById(Model model, @PathVariable Long id,@ModelAttribute Note updatedNode)
{
if(updatedNode!=null)
{
noteService.update(updatedNode);
}
Note note = null;
try {
note = noteService.findNoteById(id);
}
catch (Exception e)
{
model.addAttribute("errorMessage","Note not found");
}
model.addAttribute("edit",true);
model.addAttribute("note", note);
return "show-note";
}
@PostMapping("/notebook/{id}/delete")
public String deleteNote(@PathVariable Long id)
{
noteService.deleteNote(id);
return "redirect:/notebook";
}
И единственное, что я смог протестировать с помощью метода addNote, это перенаправление:
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class ApiTest {
@Autowired
MockMvc mockMvc;
@Test
public void addNote() throws Exception {
mockMvc.perform(post("/notebook/add-note")
.param("title","mmtitle")
.param("text", "mmtext"))
.andExpect(redirectedUrl("/notebook"));
}
Как видите, Я также использую param, который создает новый объект в моей базе данных, но я не знаю, как проверить это с помощью test. Можете ли вы сказать мне, как я могу это сделать, или связать меня с любым источником, где я могу научиться тестированию с помощью макетов?