【发布时间】:2018-06-06 09:33:19
【问题描述】:
我正在尝试在下面对我的对象服务进行单元测试:
@Service
public class ObjectServiceImpl implements ObjectService{
private final ObjectDao objectDao;
@Autowired
public ObjectServiceImpl(ObjectDao objectDao){
this.objectDao = objectDao;
}
@Override
public Object getById(Long ObjectId) throws RecordNotFoundException {
Optional<Object> Object = ObjectDao.findById(ObjectId);
if (!Object.isPresent()) {
throw new RecordNotFoundException(String.format(
MessageConstants.ObjectID_NOT_FOUND, ObjectId));
}
return Object.get();
}
但是当我尝试在下面实现我的 JUnit 时出现错误:No value present at java.util.Optional.get:
@RunWith(MockitoJUnitRunner.Silent.class)
public class ObjectServiceTest {
@InjectMocks
private ObjectServiceImpl objectServiceImpl;
@Mock
private ObjectDao objectDao;
private ObjectService objectService;
@Test
public void getById() throws RecordNotFoundException{
Object object = new Object();
Long objectId = 1L;
Optional<Object> objectList =
objectDao.findById(objectId);
given(objectDao.findById(
objectList.get().getId())).willReturn(objectList);
objectServiceImpl.getById(Mockito.anyLong());
Mockito.verify(objectDao).findById(objectId);
assertNotNull(objectServiceImpl.getById(objectId));
}
}
我有什么遗漏或需要更新的吗?
【问题讨论】:
标签: java spring junit mockito optional