У меня неизменный DTO
@Value
@Builder
public class UserDto {
Long id;
String username;
}
@Value
аннотации взяты из проекта ломбок .Все поля помечаются как private
и final
.Кроме того, класс также помечается как генерируемые методы final
и equals()
hashCode()
и toString()
.Я нашел это очень удобным при реализации объектов передачи данных
Проблема началась при написании теста с использованием spock framework .Внутри теста я пытаюсь смоделировать какое-то поведение:
userFactory.create(userDto) >> user
выдается исключение:
org.spockframework.mock.CannotCreateMockException: Cannot create mock for class user.dto.UserDto because Java mocks cannot mock final classes.
Есть ли какое-нибудь решение для этого в Spock
framework или любым другим способом?Я действительно придерживаюсь аннотации @Value
и не хочу ее удалять.