I want to unit test the following class:
@Data
@AllArgsConstructor
public class MyClass {
   private MyValueClass valueObject;
   public BigDecimal someMethod(int startId, int endId) {
      List<BigDecimal> values = valueObject.get(startId, endId);
      
      ...
I tried to mock MyValueClass which looks like:
@Value //lombok annotation
public class MyValueClass {
   private List<Data> someData;
   public List<BigDecimal> get(int startId, int endId) {
       //code to get subset of someData with ids between startId and endId
   }
But when I run this junit (jupiter) test:
@ExtendWith(MockitoExtension.class)
class MyClassTest {
   private MyClass myClass;
   @Mock
   private MyValueClass valueOjectMock;
   @BeforeEach
   public void setUp() {
      myClass= new myClass(valueOjectMock);
   }
   @Test
   void test() {
      when(valueOjectMock.get(1,5))
         .thenReturn(new ArrayList<>());
      ....
   }
}
I get the following error:
org.mockito.exceptions.base.MockitoException: 
Cannot mock/spy class com.seasset.funds.performance.domain.FundReturns
Mockito cannot mock/spy because :
 - final class
    at org.mockito.junit.jupiter.MockitoExtension.beforeEach(MockitoExtension.java:153)
But MyValueClass is not final. Why do I get this error? How can I mock this class?
 
     
    