mockito 如何在Sping Boot 中模拟另一个Service中的方法

zour9fqk  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(76)

对于上下文,我有两个服务类:ValServiceAppService
ValService中,我有一个方法validate,它调用了AppService中的一个方法:
Character c = appService.sendToAPI(listOfString, stringId);
sendToAPI方法调用外部API,该API返回一个字符。
现在,为了测试ValService,如何正确地模拟该方法?

9cbw7uwe

9cbw7uwe1#

IMHO我会这样测试它。

@ExtendWith(MockitoExtension.class)
public class MyTest{
    @Mock
    AppService appService;
       
    @InjectMocks
    ValService valService;
      
    @Test
    void testValidation() {
        when(appService.sendToApi(any(), any())).thenReturn(getMeReturnChar());
           
        final var result = valService.validate("someData");

        assertThat(result).equalTo("myValidationSign");
    
    }
       
    private Character getMeReturnChar() {
        return 'testingCharacterOfYourChoice';
    }
}

字符串
但这只是一个粗略的例子。我需要更多的信息来帮助你进一步

相关问题