Hallo ich möchte gerne meine PlayerController per MockMvc testen.
Kurz zu meiner Architektur :
Ich habe einen PlayerControler, der einen PlayerService beinhaltet, dieser kennt das PlayerRepository.
Ich möchte nun die Mtehoden addPlayer, updatePlayer und deletePlayer im Controller testen.
Die Update und delete Methoden erwarten alledings einen ID :
Das Problem ist die ID : Ich möchte eiegntlich nur einen Player für alle Tests verwenden, und damit auch immer die gleiche ID.
Wenn ich für jeden Test einen neuen Player erzeuge, bekommt dieser immer einen neue ID (1,2,3,...). Der Test kennt diese ID aber nicht.
Daher möchte ich gerne, dass zu Begin der verschiedenen Test bereits das gleich Player Object existiert. Meine erste Idee war es, den Controller zu nutzen und über die Add Methode einen Player erzeugen zulassen.
Dazu habe ich eine @BeforeAll verwendet :
Diese muss aber static sein, tja und beginnen die Probleme, da hier der MockMVC verwendet wird :
In den normalen Tests wird diese mockMVC aber als NullPointer verwendet.
Ich hoffe ich habe nicht alle verwirrt.
Vielleicht kann mir jemand helfen eine Idee zu bekommen wie ich dieses Prioblem lösen kann.
Vielen Dank !!!!
Kurz zu meiner Architektur :
Ich habe einen PlayerControler, der einen PlayerService beinhaltet, dieser kennt das PlayerRepository.
Ich möchte nun die Mtehoden addPlayer, updatePlayer und deletePlayer im Controller testen.
Die Update und delete Methoden erwarten alledings einen ID :
Java:
@RequestMapping(path = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
public Player update(@RequestParam(value = "id") Long id,
@RequestParam(value = "email") String email,
@RequestParam(value = "name") String name,
@RequestParam(value = "preName", required = false) String preName,
@RequestParam(value = "birthday", required = false) String birthday,
@RequestParam(value = "gender", required = false) String gender) ...
Wenn ich für jeden Test einen neuen Player erzeuge, bekommt dieser immer einen neue ID (1,2,3,...). Der Test kennt diese ID aber nicht.
Daher möchte ich gerne, dass zu Begin der verschiedenen Test bereits das gleich Player Object existiert. Meine erste Idee war es, den Controller zu nutzen und über die Add Methode einen Player erzeugen zulassen.
Dazu habe ich eine @BeforeAll verwendet :
Java:
@BeforeAll
static void init() throws Exception {
canAddPlayer();
}
Java:
@Autowired
private static MockMvc mockMvc;
In den normalen Tests wird diese mockMVC aber als NullPointer verwendet.
Ich hoffe ich habe nicht alle verwirrt.
Vielleicht kann mir jemand helfen eine Idee zu bekommen wie ich dieses Prioblem lösen kann.
Vielen Dank !!!!