Slide 56
Slide 56 text
Unit Tests are not enough! Test the exception cases!
@ParameterizedTest(name = "should return bad request when creating a course with invalid data: {0}")
@MethodSource("com.loiane.course.TestData#createInvalidCoursesDTO")
void testCreateInvalid(CourseRequestDTO course) {
assertThrows(ConstraintViolationException.class, () -> this.courseService.create(course));
then(courseRepository).shouldHaveNoInteractions();
}
public static List createInvalidCoursesDTO() {
return List.of(
new CourseRequestDTO(null, null, createLessonsDTO()),
new CourseRequestDTO(VALID_CATEGORY, null, createLessonsDTO()),
new CourseRequestDTO(VALID_CATEGORY, "", createLessonsDTO()),
new CourseRequestDTO(VALID_CATEGORY, INVALID_COURSE_NAME, createLessonsDTO()),
new CourseRequestDTO(VALID_CATEGORY, LOREN_IPSUM, createLessonsDTO()),
new CourseRequestDTO(null, VALID_NAME, createLessonsDTO()),
// more invalid data
}