我该如何在豆子上进行部分模拟



我有以下junit class

@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

而不是@mock使用@spy注释。间谍提供了仅模拟特定方法(使用"何时")并让其他人按原样工作的方式。

更多关于间谍的信息:链接。

相关内容

  • 没有找到相关文章

最新更新