J单元测试案件即使通过
我正在编写部分更新或补丁调用服务方法的测试用例。 但是我遇到了单位测试通过的问题,但没有给出覆盖范围。
,它还对此功能内部的方法进行了覆盖。
我编写的测试案例如下
@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.
and also it is giving coverage to the methods inside this function.
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论