我有以下JUNIT课
@RunWith(SpringJUnit4ClassRunner.class)
@Configuration
@ContextConfiguration(locations = { "classpath:junit-xxx.xml", "classpath:junit-xxxxx.xml" })
public class TestFictionalClass
{
@Autowired // I changed this to @Mock so the first "when" below works
private MyService mService
@Before
@Transactional
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
Mockito.when((mService).myMockedMethod(Mockito.any(String.class)))
.thenReturn("Hello");
Mockito.when((mService).myOtherRealMethod(Mockito.any(BigDecimal.class), Mockito.any(BigDecimal.class))).thenCallRealMethod();
}
我想在这里做的是模拟其中一种方法,因此它总是返回值“ hello”,但是我希望类中的另一种方法能够正常执行。问题是第二种方法出现以下错误
org.mockito.exceptions.base.MockitoException:无法调用抽象 java对象的真正方法!只有在以下情况下才可以调用真实方法 模拟非抽象方法。
我该如何模拟有问题的类,以便覆盖其中一个方法返回的值?
谢谢
PS:我正在使用Mockito和Spring MVC