看帖神器
未名空间
追帖动态
头条新闻
每日新帖
最新热帖
新闻存档
热帖存档
文学城
虎扑论坛
未名空间
北美华人网
北美微论坛
看帖神器
登录
← 下载
《看帖神器》官方
iOS App
,体验轻松追帖。
咨询一个java问题
查看未名空间今日新帖
最新回复:2020年5月29日 11点44分 PT
共 (1) 楼
返回列表
订阅追帖
只看未读
更多选项
阅读全帖
只看图片
只看视频
查看原帖
d
daSHXiWanGon
接近 4 年
楼主 (未名空间)
都讨论刷题,我来一个java问题,目前卡住了
大概背景是
我实现了一个dstBiz
用于call 一个url的Rest service,这个api是calculateDST
api本身的功能已经实现和验证
目前要写unit test case,
使用mockRestClient,
当api使用mockRestClient时,api调post访问url时,mockRestClient
就直接返回一个假的dto,然后api直接读取这个假dto再读取字段返回结果
@BeforeMethod
public void setUpMocks(){
mockResponse=Mockito.mock(ServiceDataResoponse.class);
dspBizImpl=new DSTBizImpl(new FakeRestClientProvider());
}
@Test
public void testGoodResponse() throws BusinessException(){
MyResponseDTO responseDTO=new MyResponseDTO();
responseDTO.setData(100);
when(mockResponse.getData()).thenReturn(responseDTO);
MyDTO request=new MyDTO();
int res=dspBizImpl.calculateDST(request);
assertEquals(100,res);
}
private class FakeRestClientProvider implements IRestClientProvider{
RestClient mockRestClient =mock(RestClient.class);
when(mockRestClient.header(any)).thenReturn(mockRestClient);
//这一行有问题 jdk compile只接受原生Response类型的mockResponse
//但calculateDST返回的response是已经定义好的ServiceDataResoponse
when(mockRestClient.post(any())).thenReturn(mockResponse);
return mockRestClient;
}
搜了下,可以使用doReturn.when
如果定义mockResponse的类型为ServiceDataResponse.
doReturn(mockResponse).when(mockRestClient.post(any()))
编译时没问题。
build时报
doReturn(mockResponse).when(mockRestClient.post(any()))这一行
存在UnfinishedStubbingException ,
请输入帖子链接
收藏帖子
都讨论刷题,我来一个java问题,目前卡住了
大概背景是
我实现了一个dstBiz
用于call 一个url的Rest service,这个api是calculateDST
api本身的功能已经实现和验证
目前要写unit test case,
使用mockRestClient,
当api使用mockRestClient时,api调post访问url时,mockRestClient
就直接返回一个假的dto,然后api直接读取这个假dto再读取字段返回结果
@BeforeMethod
public void setUpMocks(){
mockResponse=Mockito.mock(ServiceDataResoponse.class);
dspBizImpl=new DSTBizImpl(new FakeRestClientProvider());
}
@Test
public void testGoodResponse() throws BusinessException(){
MyResponseDTO responseDTO=new MyResponseDTO();
responseDTO.setData(100);
when(mockResponse.getData()).thenReturn(responseDTO);
MyDTO request=new MyDTO();
int res=dspBizImpl.calculateDST(request);
assertEquals(100,res);
}
private class FakeRestClientProvider implements IRestClientProvider{
RestClient mockRestClient =mock(RestClient.class);
when(mockRestClient.header(any)).thenReturn(mockRestClient);
//这一行有问题 jdk compile只接受原生Response类型的mockResponse
//但calculateDST返回的response是已经定义好的ServiceDataResoponse
when(mockRestClient.post(any())).thenReturn(mockResponse);
return mockRestClient;
}
搜了下,可以使用doReturn.when
如果定义mockResponse的类型为ServiceDataResponse.
doReturn(mockResponse).when(mockRestClient.post(any()))
编译时没问题。
build时报
doReturn(mockResponse).when(mockRestClient.post(any()))这一行
存在UnfinishedStubbingException ,