gpt4 book ai didi

java.util.NoSuchElementException : No value present - Error - Optional. 使用 Spring 进行 JUNIT 测试

转载 作者:行者123 更新时间:2023-12-03 23:16:41 28 4
gpt4 key购买 nike

我有一个使用 Optional 的测试。在该方法中,它声明不存在任何值。这是代码,我有。如何在没有 NoSuchElementException 的情况下完成此传递。

 public jobs theID(Integer id) {  
if( id == null) {
throw new IllegalArgumentException("Its missing.");
}


return jobTitleMapper.entityToModel(this.jobTitleRepository.findById(id).get());
}

它对 Java 8 的 get() 大惊小怪。

在这个意义上,我如何正确使用带有 isPresent 的 Optional ?

测试是:
public void findIdTest() {
Jobs jt = this.Service.theID(Entities.thisID);
Assert.assertNotNull(jt);
Assert.assertEquals(Entities.thisID, .getId());
}

谢谢您的帮助。

最佳答案

发生这种情况是因为 Optional 返回:this.jobTitleRepository.findById(id)可以返回 empty ,所以如果你调用 get() ,它会抛出 java.util.NoSuchElementException .

您可以使用以下方法解决此问题:this.jobTitleRepository.findById(id).orElseGet(null)或者this.jobTitleRepository.findById(id).orElseGet(new Jobs())
或者修复原方法中的return Optional类型:jobTitleRepository.findById(id)
你能发这个方法吗jobTitleRepository.findById(id)在你的帖子上?

关于java.util.NoSuchElementException : No value present - Error - Optional. 使用 Spring 进行 JUNIT 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49579531/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com