Wie teste ich DAO-Methoden mit Mockito?

Ich habe angefangen, die Mockito-Bibliothek zu entdecken, und es gibt eine Frage, auf die ich keine richtige Antwort gefunden habe.

Wenn ich zum Beispiel eine solche Methode in meiner UserDAO-Klasse habe, die den Benutzer in der Datenbank speichert:

public class UserDAO{
...
 public void create(User user) {
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSet generatedKeys = null;
        try {

            connection = getConnection();
            pstmt = connection.prepareStatement(INSERT_USER,
                    PreparedStatement.RETURN_GENERATED_KEYS);
            int counter = 1;
            pstmt.setString(counter++, user.getFirstName());
            pstmt.setString(counter++, user.getLastName());
            pstmt.setString(counter++, user.getEmail());
            pstmt.setString(counter++, user.getPassword());
            pstmt.setString(counter++, user.getRole());
            pstmt.setString(counter, user.getLang());

            pstmt.execute();
            connection.commit();
            generatedKeys = pstmt.getGeneratedKeys();

            if (generatedKeys.next()) {
                user.setId(generatedKeys.getInt(Fields.GENERATED_KEY));
            }
        } catch (SQLException e) {
            rollback(connection);
            LOG.error("Can not create a user", e);
        } finally {
            close(connection);
            close(pstmt);
            close(generatedKeys);
        }
    }
  ....
}

Wie soll ich es testen?

Wenn ich zum Beispiel eine DAO-Klasse testen möchte, muss ich ein @ erstellDataSource spotten,Connection spotten,ResultSet mock etc? Und um die Datenbank selbst nicht zu testen?

Aber was ist, wenn ich auch das Verhalten von dao und database testen möchte?

Würden Sie bitte einige Codebeispiele und Links erstellen, die hilfreich sein könnten und die besten Ansätze dafür aufzeigen?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage