Pessoal,
Estou dando uma estudada no DBUnit para utilizá-lo em um projeto. Só que este projeto precisa acessar duas bases de dados distintas. Existe alguma forma de dizer ao DBUnit que eu preciso de duas conexões? Como?
Pessoal,
Estou dando uma estudada no DBUnit para utilizá-lo em um projeto. Só que este projeto precisa acessar duas bases de dados distintas. Existe alguma forma de dizer ao DBUnit que eu preciso de duas conexões? Como?
Pessoal,
Eu fiz uma gambiarra para carregar os dados na mão: criei uma classe que é extendida por todas as classes que testam DAOs e coloquei o seguinte método:
@Before
public void loadData(){
Connection jdbcConn;
IDatabaseConnection conn;
IDataSet dataSet;
try {
Class.forName(JDBCProperties.JDBC_DRIVER.getValue());
jdbcConn = DriverManager.getConnection(
JDBCProperties.RISCO_CONN_STRING.getValue(),
JDBCProperties.RISCO_USER.getValue(),
JDBCProperties.RISCO_PASSWORD.getValue());
conn = new DatabaseConnection(jdbcConn);
dataSet = new FlatXmlDataSet(
new FileInputStream("./XMLDataSets/risco.xml"));
DatabaseOperation.CLEAN_INSERT.execute(conn, dataSet);
conn.close();
jdbcConn = DriverManager.getConnection(
JDBCProperties.CURVAS_CONN_STRING.getValue(),
JDBCProperties.CURVAS_USER.getValue(),
JDBCProperties.CURVAS_PASSWORD.getValue());
conn = new DatabaseConnection(jdbcConn);
dataSet = new FlatXmlDataSet(
new FileInputStream("./XMLDataSets/curvas.xml"));
DatabaseOperation.CLEAN_INSERT.execute(conn, dataSet);
conn.close();
}
catch (Exception exception){
fail("Exception lançada!");
}
}
Funcionou, mas se alguém tiver uma solução menos tosca…
Usar um memory database tipo HSQLDB.
Cara,
Desculpe, mas não entendi. Em que isso ajudaria?
IMHO, eu não utilizaria o DBUnit.
Produção: Oracle/SqlServer/PostgresSQL/MySQL
Dev/Test: HSQLDB/JavaDB/Derbi(whatever).
Assim voce testa seus HQLs e relacionamentos.
Entendeu? :roll:
[quote=keller][quote=pango]
Usar um memory database tipo HSQLDB.
Cara,
Desculpe, mas não entendi. Em que isso ajudaria?
“Estou dando uma estudada no DBUnit para utilizá-lo em um projeto.”
[/quote]
IMHO, eu não utilizaria o DBUnit.
Produção: Oracle/SqlServer/PostgresSQL/MySQL
Dev/Test: HSQLDB/JavaDB/Derbi(whatever).
Assim voce testa seus HQLs e relacionamentos.
Entendeu? :roll:
[/quote]
Entendi a sua idéia, mas o banco é legado, ou seja, preciso de um mecanismo para transferir dados da base de produção para a base de testes. Na verdade, já estou usando o HSQLDB como base de testes, mas usando a gambiarra que citei para populá-lo a partir da base de produção.
Que loucura!
Pelo que eu entendi tu estais fazendo teste do que esta em com dados de producao?
Acho que pularam uma ‘etapa’ no teu projeto. :lol:
Afinal os dados que são utilizados em testes unitarios são ‘possiveis’ dados que poderão existir em producao…
Mas se tu tens os dados de producao nao seria mais facil fazer o dump em um .SQL e deixar o Hibernate ler isso no “onSetup” e fazer uso disso nos testes ?
Seria outra alternativa que eu consigo pensar no momento… Ate mais, boa sorte :thumbup:
[quote=keller]Que loucura!
Pelo que eu entendi tu estais fazendo teste do que esta em com dados de producao?
Acho que pularam uma ‘etapa’ no teu projeto. :lol:
Afinal os dados que são utilizados em testes unitarios são ‘possiveis’ dados que poderão existir em producao…
Mas se tu tens os dados de producao nao seria mais facil fazer o dump em um .SQL e deixar o Hibernate ler isso no “onSetup” e fazer uso disso nos testes ?
Seria outra alternativa que eu consigo pensar no momento… Ate mais, boa sorte :thumbup:
[/quote]
O banco é tão zoado (mal projetado) que não estou nem usando hibernate. É na base do JDBC mesmo… :shock: