Estoy tratando de ejecutar una prueba simple de Junit para ver si mi JpaRepository realmente funciona.
El error que me sigue saliendo es:
Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test java.lang.IllegalStateException doesn't spring boot configure itself?Mi clase de prueba:
@RunWith(SpringRunner.class) @DataJpaTest public class LogConnectionTest { @Autowired private TestEntityManager entityManager; @Autowired private LogConnectionDao logConnectionDao; @Test public void ajouterTest() throws Exception{ this.entityManager.persist(new LogConnection("Test",4)); LogConnection logConnection = this.logConnectionDao.findOne((long)1); assertThat(logConnection.getClasseName().equals("Test")); assertThat(logConnection.getOriginalId() != 5); } }Mi aplicación de arranque Spring:
@SpringBootApplication public class UpsysmarocLibraryLogApplication { public static void main(String[] args) { SpringApplication.run(UpsysmarocLibraryLogApplication.class, args); } }Mi repositorio:
public interface LogConnectionDao extends JpaRepository<LogConnection,Long> { }Lo entiendo. Siga la siguiente convención
1> Suponga que su aplicación de resorte principal es la siguiente
@EnableAutoConfiguration @SpringBootApplication public class Application {...}2> Ahora cree una clase abstracta que pueda extender en todas las clases de prueba. Si no necesita esto, simplemente tome estas anotaciones de configuración y colóquelas directamente en su clase de prueba.
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = Application.class) @ActiveProfiles("test") @WebAppConfiguration /** * If you have any property file to load to test uncomment below line) @TestPropertySource({ "classpath:/properties/dbConfig-test.properties", "classpath:/properties/unittest.properties" }) */ public abstract class AbstractSpringTest{}Entonces puedes tener tu clase de prueba
public class LogConnectionTest extends AbstractSpringTest { /** Instance to unit test. */ @Autowired private LogConnectionDao logConnectionDao; @Test public void ajouterTest() { final LogConnection logConnection = logConnectionDao.saveAndFlush(new LogConnection("Test",4)); Assert.assertNotNull(logConnection); Assert.assertEquals("Test", logConnection.getClasseName()); Assert.assertNotEquals(5, logConnection.getOriginalId()); }}
Use una anotación por debajo del nivel de clase en su clase de prueba
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {JPAConfig.class})o
@RunWith(SpringRunner.class) @ContextConfiguration(classes = {JPAConfig.class})o
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(value={"myJPAConfig.xml"})o
@RunWith(SpringRunner.class) @ContextConfiguration(value={"myJPAConfig.xml"})