Test des classes DAO

Résolu
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 14 nov. 2009 à 13:43
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 16 nov. 2009 à 15:33
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.

2 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 nov. 2009 à 15:31
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
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 nov. 2009 à 15:33
0
Rejoignez-nous