Java 在mockito中对模拟对象进行排序

Java 在mockito中对模拟对象进行排序,java,unit-testing,mockito,Java,Unit Testing,Mockito,我正在用mockito测试一个类。它包含以下方法: 可添加的 列表获取 该类在内部对对象执行若干操作,它依赖于可排序对象的排序 问题是我在模仿Sortable,这使得compareTo总是返回0。有没有一种方法可以制作一个具有原始可排序比较器实现的排序模拟?或者有其他方法可以解决这个问题吗?在模拟对象比较之前使用这样的语句调用方法: when(mockedObject.compareTo(any(Sortable.class))).thenCallRealMethod(); 在模拟对象比较到方

我正在用mockito测试一个类。它包含以下方法:

可添加的 列表获取 该类在内部对对象执行若干操作,它依赖于可排序对象的排序


问题是我在模仿Sortable,这使得compareTo总是返回0。有没有一种方法可以制作一个具有原始可排序比较器实现的排序模拟?或者有其他方法可以解决这个问题吗?

在模拟对象比较之前使用这样的语句调用方法:

when(mockedObject.compareTo(any(Sortable.class))).thenCallRealMethod();

在模拟对象比较到方法调用之前使用如下语句:

when(mockedObject.compareTo(any(Sortable.class))).thenCallRealMethod();

创建mockito Spy和只模拟你需要的方法我在考虑Spy,但是对象有太多其他依赖项,这会很麻烦。创建mockito Spy和只模拟你需要的方法我在考虑Spy,但是对象有太多其他依赖项,这会很麻烦。哇。我曾梦想过调用RealMethod,但没想到它真的存在……org.mockito.exceptions.base.MockitoException:不能在java对象上调用抽象的real方法!只有在模拟非抽象方法时才可能调用实方法。有什么建议吗?哇。我曾梦想过调用RealMethod,但没想到它真的存在……org.mockito.exceptions.base.MockitoException:不能在java对象上调用抽象的real方法!只有在模拟非抽象方法时才可能调用实方法。有什么建议吗?