Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Genau das möchte ich nicht. Es geht nicht um die Validierungs regeln.
- Überlege dir, welche Eingaben gültig sind und welche Antwort du dazu erwartest.
- Überlege dir, welche Eingaben UNGÜLTIG sind und welche Antwort du dazu erwartest.
@WebMvcTest(UserController.class)
class ControllerTest {
@Autowired
private MockMvc mockMvc;
@Mock
private Validator validator;
@Test
public void validation_gets_called() throws Exception {
Object request = new Object();
Set<ConstraintViolation<Object>> violations = mock(Set.class);
when(validator.validate(request)).thenReturn(violations);
// methoden aufruf
verify(validator, times(1)).validate(request);
}
}
private Validator validator;
@BeforeEach
public void before() {
validator = Validation.buildDefaultValidatorFactory().getValidator();
}
@Test
public void testEntityNotValid() {
MyEntity entiy = ......; // Create not valid Entity
Set<ConstraintViolation<MyEntity>> actual = validator.validate(entity);
assertThat(actual.iterator().next().getMessage()).isEqualTo("the given error message");
}
Deswegen kam ich ja auf die IdeeAlso der wichtige Punkt, den ich sehe: Überlege Dir, was Du wo testen willst
ZB die post Methode ist so spezifiziert:
[....]
- Darf nur valide request entgegen nehmen
- Wenn invalides Request gibt er 400 mit den Validierungs verstossen zurück
Sollte ich nicht genau das und nur das im Controller testen?