[MJ47] Testes Automatizados

Achei muito bom o artigo “Testes Automatizados”.
Porém, quanto aos testes com DBUnit, a listagem 8 não mostra o código completo, conforme abaixo:

private Session setUpDB(){
		try {
			Class.forName("org.hsqldb.jdbcDriver");
			Connection jdbcConnection = DriverManager.getConnection("jdbc:hsqldb:mem:testdb","sa","");
			IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
			IDataSet dataSet = new FlatXmlDataSet(new File("dados_pessoa.xml"));
			DatabaseOperation.CLEAN_INSERT.execute(connection, dataSet);
			
			QueryDataSet databaseSet = new QueryDataSet(connection);
			
			// ... codigo para obter a session do Hibernate ...
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

Alguém sabe me dizer como consigo uma Session a partir daí ?

Obrigado

Olá Emanuel,

obrigado pelo feedback!

A ideia do artigo não era aprofundar em nenhuma ferramenta, mas apenas dar uma visão geral… por isso o código das listagens é mais para dar uma ideia mesmo.

Neste caso do setUpDb, deve-se obter a sessão Hibernate da forma padrão mesmo:

sessionFactory = new HibernateConfiguration().getConfiguration()
					.configure(getHibernateConfiguration())
					.buildSessionFactory();

return sessionFactory.openSession();

Este código ficaria num HibernateUtil da vida e usaria uma configuração com o banco de dados de testes (HSQLDb em memória).

Na verdade, o melhor seria obter a session do Hibernate primeiramente desta forma e, a partir dela, obter a conexão jdbc (via método connection()) para usar
com o DbUnit.

Espero ter ajudado.

Abraços!