【发布时间】:2020-05-01 12:47:00
【问题描述】:
我正在使用Mockito框架编写模拟Junit测试用例下面是我的Service类来测试Junit测试代码
public class UserService {
@Autowired
private CassandraOperations template
public UserDTO getUserDTO(String date, String pagingState) {
Select select = QueryBuilder.select().all()
.from("tbl_user");
select.where(QueryBuilder.eq(date, date));
select.setFetchSize(30);
if (pagingState != null) {
select.setPagingState(PagingState.fromString(pagingState));
}
Slice<UserDTO> usgerDTO = template.slice(select, UserDTO.class);
if(usgerDTO.hasNext()) {
}
return usgerDTO.get();
}
编写测试用例类
@RunWith(MockitoJUnitRunner.class)
public class UserServiceTest {
@InjectMocks
private UserService service ;
@Mock
private CassandraOperations template;
@Mock
private UserDTO userDTO;
private String date= "2019-09";
@Test(expected = Exception.class)
public void test() {
Slice<UserDTO> userDTO= Mockito.mock(Slice.class);
Select select = Mockito.mock(Select.class);
Mockito.when(template.slice(select, UserDTO.class)).thenReturn(userDTO);
metricReportDTO = service.getUserDTO(date, null);
}
}
我在这一行得到 Null 值
Slice<UserDTO> usgerDTO = template.slice(select, UserDTO.class);
你能指导我如何测试 template.slice 方法
注意:我不应该使用 PowerMockito
【问题讨论】:
-
您能否尝试使用
any()而不是模拟的select?如果没有帮助,请将堆栈跟踪添加到您的问题中。
标签: spring-boot mockito cassandra-3.0