IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JPA Java Discussion :

Exemple de tests JUnit


Sujet :

JPA Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Points : 46
    Points
    46
    Par défaut Exemple de tests JUnit
    Bonjour à tous,

    J'aimerais savoir si quelqu'un à un projet avec JPA et des tests JUNITS qui fonctionnent afin de me donner un exemple de fonctionnement de test qui passe par une autre couche (service ou dao par exemple).

    J'ai tenté de mon côté de me connecté à ma base H2 comme quand je lance mon appli et que tout fonctionne mais sans résultat (j'ai mis le même persistence) puis j'ai tenté avec un fichier xml de BDD et de m'y connecter, sans résultat. J'ai également eu des problèmes avec mon entity manager qui restait à nul mais tout est liée je présume.

    Merci d'avance ça m'aiderai énormément, tout ce que j'ai trouvé sur le net ne m'a pas aidé

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Points : 46
    Points
    46
    Par défaut
    J'ai tenté quelque chose qui avait l'air de fonctionné mais arrivé au Begin plantage ! Si quelqu'un a une idée..

    Voici l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Could not open connection
    	at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1377)
    	at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1300)
    	at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:1387)
    	at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:62)
    	at com.icl.m3.relationTest.Jl2tho.test(Jl2tho.java:41)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
    	at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
    	at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    	at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
    	at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
    	at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
    	at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
    	at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
    	at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    	at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
    	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
    Caused by: org.hibernate.exception.JDBCConnectionException: Could not open connection
    	at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:131)
    	at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
    	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
    	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
    	at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:221)
    	at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:157)
    	at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67)
    	at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)
    	at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1425)
    	at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:59)
    	... 21 more
    Caused by: java.sql.SQLException: socket creation error
    	at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
    	at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source)
    	at org.hsqldb.jdbcDriver.getConnection(Unknown Source)
    	at org.hsqldb.jdbcDriver.connect(Unknown Source)
    	at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:204)
    	at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:292)
    	at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214)
    	... 26 more
    Voici ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    package com.icl.m3.relationTest;
     
    import static org.junit.Assert.*;
     
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.EntityTransaction;
    import javax.persistence.Persistence;
     
    import org.junit.AfterClass;
    import org.junit.BeforeClass;
    import org.junit.Test;
     
    import com.icl.m3.model.Author;
     
    public class Jl2tho {
     
    	private static EntityManager em;
     
    	private static EntityManagerFactory emf;
     
    	@BeforeClass
    	public static void setUpBeforeClass() throws Exception {
    		emf = Persistence.createEntityManagerFactory("sample");
     
    		em = emf.createEntityManager();
    	}
     
    	@AfterClass
    	public static void tearDownAfterClass() throws Exception {
     
    		em.close();
     
    		emf.close();
    	}
     
    	@Test
    	public void authorTest() {
    		EntityTransaction tx = em.getTransaction();
     
    		tx.begin();
     
    		Author author = new Author();
     
    		author.setFirstName("DEDE");
    		author.setLastName("MEME");
     
    		em.persist(author);
     
    		int idAuthor = author.getId();
     
    		assertNotNull("Id not null", idAuthor);
     
    		Author monAutheurRetrouve = em.find(Author.class, idAuthor);
     
    		assertNotNull("Author from database", monAutheurRetrouve);
     
    		assertEquals("getFirstName", "DEDE",
    				monAutheurRetrouve.getFirstName());
    		assertEquals("getLastName", "MEME", monAutheurRetrouve.getLastName());
     
    		assertNull("BirthDate Null", monAutheurRetrouve.getBirthDate());
     
    		tx.commit();
     
    	}
     
    }
    Voici mon persistence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
     
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     
    	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
     
    	version="1.0">
     
    	<persistence-unit name="sample" transaction-type="RESOURCE_LOCAL">
     
    		<class>com.icl.m3.model.Book</class>
    		<class>com.icl.m3.model.Author</class>
    		<class>com.icl.m3.model.Address</class>
    		<class>com.icl.m3.model.Order</class>
    		<class>com.icl.m3.model.OrderLine</class>
    		<class>com.icl.m3.model.User</class>
     
    		<properties>
     
    			<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
     
    			<property name="hibernate.hbm2ddl.auto" value="create" />
     
    			<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />
     
    			<property name="hibernate.connection.username" value="sa" />
     
    			<property name="hibernate.connection.password" value="" />
     
    			<property name="hibernate.connection.url" value="jdbc:hsqldb:hsql://localhost/jpatest" />
     
    			<property name="hibernate.show_sql" value="true" />
     
    		</properties>
     
    	</persistence-unit>
     
    </persistence>
    Ce sont des éléments du net donc normalement correct... xD

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Caused by: org.hibernate.exception.JDBCConnectionException: Could not open connection
    ....
    Caused by: java.sql.SQLException: socket creation error
    Tu essaie de te connecter à un serveur de base de données qui, manifestement, ne tourne pas. La configuration que tu as mis, suppose qu'un serveur hsqldb tourne sur le port par défaut sur ta machine. Et apparament, ce n'est pas le cas.

Discussions similaires

  1. [EJB3] Problème test JUNIT sur JBoss
    Par Thane dans le forum Java EE
    Réponses: 2
    Dernier message: 14/02/2007, 15h11
  2. problème avec test Junit
    Par Rayley dans le forum Maven
    Réponses: 6
    Dernier message: 15/11/2006, 16h15
  3. différents tests Junit/Mock objects
    Par LESOLEIL dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 09/05/2006, 17h28
  4. [JUnit] @Test, Junit et Java 1.5
    Par pierreonxbox dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 18/04/2006, 15h55
  5. [Plugin Test] JUnit et autres outils...
    Par seb-astien dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/09/2005, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo