У меня есть меню сущностей с дочерними отношениями Ресторан. Я проверю, есть ли рестораны с меню, меню нельзя удалить, поэтому я сделал этот тест Junit:
Restaurant resto = new Restaurant(menu);
restaurantService.save(resto);
menuService.delete (menu);
menu = menuService.findByMenuId(menuName);
assertNotNull (menu);
но, конечно, я не могу протестировать этот UserCase, потому что у меня есть исключение:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails
public class Menu {
...
@OneToMany(mappedBy = "menu",
cascade = CascadeType.ALL,
orphanRemoval = true, fetch = FetchType.LAZY)
@JsonIgnore
private Set<Restaurants> restaurant = new HashSet<>();
...
}
а также
public class Restaurant {
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "menu_id")
@JsonIgnore
private Menu topMenu;
..
}




В таких случаях утверждения утверждения не помогут. Вам нужно использовать «ожидаемый», чтобы убедиться, что удаление не происходит и возникает исключение.
@Test(expected=MySQLIntegrityConstraintViolationException.class)
public void testMenuDeletionFailure() {
\\invoke the method you need to unit test, there is no need of assertion statements
}
Попробуй это..
не могли бы вы показать нам свои сущности?