Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

267
Vistas
¿Cómo probar los métodos de actualización?

Soy nuevo en pruebas unitarias y uso JUnit en mi aplicación Java (Spring Boot). A veces necesito probar métodos de actualización, pero cuando busco en la web, no hay un ejemplo o sugerencia adecuada. Entonces, ¿podría aclararme cómo probar el siguiente método de actualización? Creo que esto puede requerir un enfoque diferente al de la prueba de vacío. También pensé que mientras probaba primero se burlaba del registro y luego actualizaba su campo y luego actualizaba. Finalmente recupere el registro nuevamente y compare las propiedades actualizadas. Pero creo que puede haber un enfoque más adecuado que este sin experiencia.

 public PriceDTO update(UUID priceUuid, PriceRequest request) { Price price = priceRepository .findByUuid(priceUuid) .orElseThrow(() -> new EntityNotFoundException(PRICE)); mapRequestToEntity(request, price); Price updated = priceRepository.saveAndFlush(price); return new PriceDTO(updated); } private void mapRequestToEntity(PriceRequest request, Price entity) { entity.setPriceAmount(request.getPriceAmount()); // set other props }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Debe simular el comportamiento del objeto de clase priceRepository . Así que tendrás que escribir algo como lo siguiente para comenzar:

 // priceRepository should be mocked in the test class Mockito.when(priceRepository.findByUuid(any(UUID.class))).thenReturn(new Price());
over 4 years ago · Santiago Trujillo Denunciar

0

Tendrías que hacer algo como lo siguiente:

 public class ServiceTest { @Mock private PriceRepository priceRepository; (...) @Test public void shouldUpdatePrice() throws Exception { // Arrange UUID priceUuid = // build the Price UUID PriceRequest priceUpdateRequest = // build the Price update request Price originalPrice = // build the original Price doReturn(originalPrice).when(this.priceRepository).findByUuid(isA(UUID.class)); doAnswer(AdditionalAnswers.returnsFirstArg()).when(this.priceRepository).saveAndFlush(isA(Price.class)); // Act PriceDTO updatedPrice = this.service.update(priceUuid, priceUpdateRequest); // Assert // here you need to assert that updatedPrice is as you expect according to originalPrice and priceUpdateRequest } }
over 4 years ago · Santiago Trujillo Denunciar

0

Entonces, si su única intención es verificar si llamó a guardar, entonces algo como esto es probablemente lo que está buscando:

 @ExtendWith(MockitoExtension.class) public class ServiceTest { @Mock private PriceRepository priceRepository; @InjectMocks private Service service; @Test public void update() throws Exception { // Given Price price = new Price(); price.setUid(UUID.randomUUID()); price.setPriceAmount(100); when(priceRepository.findByUid(price.getUid())) .thenReturn(price); ArgumentCaptor<Price> priceArgument = ArgumentCaptor.forClass(Price.class); when(incidentRepository.saveAndFlush(priceArgument.capture())) .thenAnswer(iom -> iom.getArgument(0)); // When PriceRequest priceRequest = new PriceRequest(); priceRequest.setPriceAmount(123); PriceDTO updatedPrice = this.service.update(price.getUid(), priceUpdateRequest); // Then assertThat(priceArgument.getValue().getPriceAmount()) .isEqualTo(123); } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda