Spring Boot 测试方法getEntityById?时不存在值

pdkcd3nj  于 2023-03-02  发布在  Spring
关注(0)|答案(2)|浏览(169)

出现下一个问题,当我测试方法时,出现异常NoSuchElementException-〉不存在值
我的嘲笑

@InjectMocks
    private CarServiceImpl carService;
    
    @Mock
    private CarRepository carrepo;

我的测试

@Test
    void getCarById() {

        Car car = new Car();
        car.setId(1L);
    
        carService.getCarById(1l);
        when(carrepo.findById(1l)).thenReturn(Optional.of(car));
        
        Car actualCar = carService.getCarById(1L);
        Assertions.assertEquals (car, actualCar);
        
}

和服务层

@Override
    public Car getCarById(Long id) {
        
        return carrepo.findById(id).get();
    }

如果有人知道问题出在哪里,请帮助我

q8l4jmvw

q8l4jmvw1#

不确定您要在此测试中完成什么,但您在Mockito when之前调用了carService.getCarById(1L);,也在之后调用了carService.getCarById(1L);,但我猜您最初调用getCarById(1L)时没有可用的值,因此出现no value present消息。

roejwanj

roejwanj2#

这次考试我会通过的,大家加油!

@Test
        void getCarById() {
    
            Car car = new Car();
            car.setId(1L);
        
            when(carrepo.findById(1l)).thenReturn(Optional.of(car));
            
            Car actualCar = carService.getCarById(1L);
            Assertions.assertEquals (car, actualCar);
            
        }

相关问题