为什么我的测试结果为空,而我却嘲笑了依赖关系?

Kenez92:

我的其余api测试有问题。有人可以告诉我该怎么做吗?

完整代码在github上:https : //github.com/kenez92/kodilla-library

该表达式返回null。为什么呢

BookDetailsDto bookDetailsDto = bookDetailsS​​ervice.findBookDetails(id);

@RunWith(MockitoJUnitRunner.class)
@SpringBootTest
public class BookDetailsServiceTestSuite {
    @Mock
    private BookDetailsMapper bookDetailsMapper;
    @Mock
    private BookDetailsRepository bookDetailsRepository;
    @InjectMocks
    private BookDetailsService bookDetailsService;

    private BookDetails createBookDetails() {
        return BookDetails.builder()
                .id(1L)
                .code(1234L)
                .title("New Title")
                .author("New Author")
                .yearOfPublication(1999)
                .build();
    }

    @Test
    public void testGetBookDetailsById() {
        //Given
        long id = 1;
        Mockito.when(bookDetailsRepository.findById(id)).thenReturn(Optional.ofNullable(createBookDetails()));

        //When
        BookDetailsDto bookDetailsDto = bookDetailsService.findBookDetails(id);
        //Then
        Assert.assertEquals(bookDetailsDto.getId(), id);
        Assert.assertEquals(bookDetailsDto.getCode(), 1234L);
        Assert.assertEquals(bookDetailsDto.getTitle(), "New Title");
        Assert.assertEquals(bookDetailsDto.getAuthor(), "New Author");
        Assert.assertEquals(bookDetailsDto.getYearOfPublication(), 1999);
    }
}
塞巴斯蒂安·坦普拉多(SébastienTemprado):

这是findBookDetails的代码:

public BookDetailsDto findBookDetails(Long bookDetailsId) {
    log.debug("Find book details by id: {}", bookDetailsId);
    BookDetails bookDetails = bookDetailsRepository.findById(bookDetailsId)
            .orElseThrow(() -> new LibraryException(LibraryException.ERR_BOOK_DETAILS_NOT_FOUND_EXCEPTION));
    BookDetailsDto bookDetailsDto = bookDetailsMapper.mapToBookDetailsDto(bookDetails);
    log.debug("Book details found by id: {}", bookDetailsId);
    return bookDetailsDto;
}

您已经嘲笑,bookDetailsRepository.findById(id)但是还没有嘲笑BookDetailsDto bookDetailsDto = bookDetailsMapper.mapToBookDetailsDto(bookDetails);,这就是为什么它返回null的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我已经嘲笑了服务,为什么在不注入服务依赖的情况下仍然出错?

NUnit / Moq:我嘲笑了一个类,但是执行了真正的构造函数,为什么?

为什么使用此查询时我的结果为空

摩卡测试:为什么我的用户身份为空?

为什么我的数组返回测试为空?

为什么我得到空结果?

我为什么要嘲笑对象?

为什么在docker容器中找不到我的composer依赖项,而我的Mac上却原生存在?

为什么IntelliJ scala插件无法获取我的依赖关系?

为什么sbt找不到我的依赖关系?

为什么我不能更新npm包依赖关系?

为什么我的场景为空?

为什么我的XHR的statusText为空?

为什么我的jQuery空为无效?

为什么我的对象保持为空?

为什么我的变量为空?

为什么我的屏幕比例为空?

为什么我的清单为空?

为什么我的WPF CompboBox为空

为什么我的请求正文为空?

即使我正在测试的功能正在记录日志,为什么caplog.text也为空?

在Rails中,为什么仅在测试中我的邮件正文为空?

(为什么)在for循环之前我应该测试一个数组是否为空?

为什么我的嘲笑记录器显示为被调用而还没有显示?

为什么我应该在 DOM 中使用“required”,而我在 FormBuilder 中将字段设置为必需的?

为什么 strlen() 有效而我的方法无效?

为什么我的组合框为空?即使不是空的

为什么我需要 Razor 页面依赖项来为 .NET Core Web Api 编写集成测试?

为什么我的响应正文为空,状态为 200?