Я начал обнаруживать библиотеку Mockito, и есть вопрос, для которого я не нашел правильного ответа.
Если у меня есть такой метод в моем классе UserDAO, который сохраняет пользователя в базе данных:
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);
}
}
....
}
Как проверить его?
Если я хочу проверить, например, класс DAO, мне нужно создать DataSource
mock, Connection
mock, ResultSet
mock и т.д.? И чтобы не тестировать базу данных?
Но что, если я хочу также проверить поведение dao и базы данных?
Не могли бы вы привести примеры кода, ссылки, которые могут быть полезны, и показать лучшие подходы к его выполнению?