2012-08-05 24 views
6

Me estoy ejecutando como prueba unitaria y se vuelve automáticamente incluso si no utilizo el @rollback en la primavera 3.1. Mi prueba se parece¿@Transactional retrotrae automáticamente la transacción en la primavera 3?

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = { "classpath:application-context.xml" }) 
public class PersonServiceTest { 

    @Test 
    @Transactional 
    public void savePerson() { 
      Person person = createPerson(); 
      personService.savePerson(person); 
    } 
} 

es un comportamiento Rollback está configurado por defecto?

+0

TL; DR: Sí, este es el valor predeterminado. –

Respuesta

13

De forma predeterminada, SpringJUnit4ClassRunner retrotraerá las transacciones automáticamente.

Para anular el efecto, use @TransactionConfiguration(defaultRollback=false) en su clase de prueba o @Rollback(false) en cada prueba.

+0

... en la primavera 5, '@ Commit' reemplaza' @Rollback (false) ' –

Cuestiones relacionadas