J单元测试案件即使通过

发布于 2025-02-12 15:58:35 字数 2201 浏览 1 评论 0原文

我正在编写部分更新或补丁调用服务方法的测试用例。 但是我遇到了单位测试通过的问题,但没有给出覆盖范围。

,它还对此功能内部的方法进行了覆盖。

我编写的测试案例如下

@MockitoSettings(strictness = Strictness.LENIENT)
@Test
public void updateProductPartialTest() throws Exception {
    Product prod = saveprod();
    ProductDto dto = saveDto();
    PartialProductDto updto = patchDto();
    Product upprod = upprod();
    ProductDto updtoo = updateDto();
    
    String id = "5e7e2fcf-c0b8-4c9b-860b-55d71a3c580f";
    given(mapper.ProductDtotoProduct(dto)).willReturn(prod);
    given(mapper.ProductToProductDto(prod)).willReturn(dto);
    given(productrepository.findByProductId(dto.getProductId())).willReturn(Optional.empty());
    given(productrepository.save(prod)).willReturn(prod);
    service.addProduct(dto);
    given(productrepository.findByProductId(dto.getProductId())).willReturn(Optional.of(prod));

    given(service.mappingForPatrialUpdate(updto, prod)).willReturn(upprod);
    
    Mockito.doReturn(updtoo).when(service).updateProductPartial(updto, id);
    given(mapper.ProductToProductDto(prod)).willReturn(dto);
    given(mapper.ProductDtotoProduct(dto)).willReturn(prod);
    given(service.addProduct(dto)).willReturn(dto);
    service.addProduct(dto);
    service.updateProductPartial(updto, id);
    given(productrepository.findByProductId(id)).willReturn(Optional.of(upprod));
    assertThat(productrepository.findByProductId(id).get().equals(upprod));
    
}

,我所嘲笑的东西是:

    @Mock
ProductRepository productrepository;
@Mock
SimpleProductdtoProductMapper mapper;

@Spy
@InjectMocks
ProductServiceImpl service;
@InjectMocks
ProductGetServiceImpl serviceget;

据我所知,这是引起这个问题通过以下行:

        Mockito.doReturn(updtoo).when(service).updateProductPartial(updto, id);

我可以用什么替换此行,因此我得到了这些测试的覆盖范围。 感谢任何帮助或建议。

i am writing test case for partial update or Patch call service method.
but i am having problem that the Unit test passes but it is not giving the coverage.

partial Method

and also it is giving coverage to the methods inside this function.

The Mapping Method

the test case i have written is as follow

@MockitoSettings(strictness = Strictness.LENIENT)
@Test
public void updateProductPartialTest() throws Exception {
    Product prod = saveprod();
    ProductDto dto = saveDto();
    PartialProductDto updto = patchDto();
    Product upprod = upprod();
    ProductDto updtoo = updateDto();
    
    String id = "5e7e2fcf-c0b8-4c9b-860b-55d71a3c580f";
    given(mapper.ProductDtotoProduct(dto)).willReturn(prod);
    given(mapper.ProductToProductDto(prod)).willReturn(dto);
    given(productrepository.findByProductId(dto.getProductId())).willReturn(Optional.empty());
    given(productrepository.save(prod)).willReturn(prod);
    service.addProduct(dto);
    given(productrepository.findByProductId(dto.getProductId())).willReturn(Optional.of(prod));

    given(service.mappingForPatrialUpdate(updto, prod)).willReturn(upprod);
    
    Mockito.doReturn(updtoo).when(service).updateProductPartial(updto, id);
    given(mapper.ProductToProductDto(prod)).willReturn(dto);
    given(mapper.ProductDtotoProduct(dto)).willReturn(prod);
    given(service.addProduct(dto)).willReturn(dto);
    service.addProduct(dto);
    service.updateProductPartial(updto, id);
    given(productrepository.findByProductId(id)).willReturn(Optional.of(upprod));
    assertThat(productrepository.findByProductId(id).get().equals(upprod));
    
}

and the things that i am mocking are :

    @Mock
ProductRepository productrepository;
@Mock
SimpleProductdtoProductMapper mapper;

@Spy
@InjectMocks
ProductServiceImpl service;
@InjectMocks
ProductGetServiceImpl serviceget;

As far as i understand is this issue is caused by following line:

        Mockito.doReturn(updtoo).when(service).updateProductPartial(updto, id);

what can i replace this line with so i get coverage to these test.
any help or suggestion is appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文