依赖Feign Client的单元测试

2020-12-29  本文已影响0人  十毛tenmao

最近项目组在推动单元测试,要求覆盖率提升到60%,但是很多的业务流程都依赖远程调用(Feign Client),所以测试时,需要mock这些远程调用的行为。

完整示例

@FeignClient(value = "baidu")
public interface BaiduApi {
    @GetMapping("index.html")
    String index();
}
@Component
public class BaiduManager {
    @Resource
    private BaiduApi baiduApi;

    public String getIndex() {
        return baiduApi.index();
    }
}
@SpringBootTest
class BaiduManagerTest {
    @Resource
    private BaiduManager baiduManager;

    @MockBean(name = "com.tenmao.utdemo.BaiduApi")
    private BaiduApi baiduApi;

    @Test
    void getIndex() {
        Mockito.when(baiduApi.index()).thenReturn("baidu index");

        String index = baiduManager.getIndex();
        Assertions.assertEquals("baidu index", index);
    }
}

常见错误

参考

上一篇 下一篇

猜你喜欢

热点阅读