Test des classes DAO

Résolu
Signaler
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
-
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
-
Bonjour à tous.

Je développe actuellement un projet où j'utilise une base de données Oracle, je voudrais tester mes classes DAO avec Junit, mais je ne sais pas comment faire pour vérifier si ls tables sont bien créées et bien instanciées.

J'ai trouvé de la documentation sur le site de sun mais, je ne suis vraiment pas assez bilingue pour m'en sortir.

Si quelqu'un avait un exemple de test d'une classe DAO ou un tutoriel en francais sous la main...

Merci.
A voir également:

2 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
J'ai fini par trouver et comprendre un exemple, je le mets au cas ou quelqeu'un ouvrirait ce post.

[b]public class MyNonTestableUserDAO implements UserDAO {

private Connection getConnection() throws SQLException {
return DriverManager.getConnection(
"jdbc:mckoi://localhost/",
"admin_user",
"aupass00");
}

public User createUser(String userId, String firstName, String lastName)
throws DAOException {
try {
PreparedStatement ps = getConnection().prepareStatement(SQL_INSERT);
ps.setString(1, userId);
ps.setString(2, firstName);
ps.setString(3, lastName);
ps.executeUpdate();
ps.close();
return new User(userId, firstName, lastName);
} catch (SQLException e) {
throw new DAOException(e.getMessage());
}
}
}


public class TestMyNonTestableUserDao extends DatabaseTestCase {

private static final String TESTDATA_FILE =
"TestMyNonTestableUserDao-dataset.xml";

public TestMyNonTestableUserDao(String testName) {
super(testName);
}

// dbUnit uses this method to obtain a connection to the database which
// it is supposed to set up as a sandbox for the actual test methods
protected IDatabaseConnection getConnection() throws Exception {
Class driverClass = Class.forName("com.mckoi.JDBCDriver");
String url = "jdbc:mckoi://localhost/";
String usr = "admin_user";
String pwd = "aupass00";
Connection jdbcConnection = DriverManager.getConnection(url, usr, pwd);
return new DatabaseConnection(jdbcConnection);
}

// dbUnit uses this method to obtain the set of data that needs to be
// inserted into the database to set up the sandbox
protected IDataSet getDataSet() throws Exception {
return new FlatXmlDataSet(new FileInputStream(TESTDATA_FILE));
}

public void testCreateUser() throws Exception {
UserDAO dao = new MyNonTestableUserDAO();
User user = dao.createUser("laskos", "Lasse", "Koskela");
assertNotNull(user);
assertEquals("laskos", user.getUserId());
assertEquals("Lasse", user.getFirstName());
assertEquals("Koskela", user.getLastName());
makeSureUserWasInserted(user);
}

private void makeSureUserWasInserted(User user)
throws AssertionFailedError, Exception {
Connection jdbcConnection = getConnection().getConnection();
// actual verification emitted for brevity ...
}
}/b
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366