Olá,
algúem que tenha conhecimento em DbUnit, sabe de algum tutorial na internet que realmente funcione?
Já tentei seguir alguns tutoriais, mas sempre dá erro, nem o que tem no site oficial da documentação do DbUnit dá certo.
Olá,
algúem que tenha conhecimento em DbUnit, sabe de algum tutorial na internet que realmente funcione?
Já tentei seguir alguns tutoriais, mas sempre dá erro, nem o que tem no site oficial da documentação do DbUnit dá certo.
Continua sem inserir no banco. Vou deixar o código aqui pra ver se alguém ajuda.
Esse é o xml que está dentro da pasta datasource com os dados que devem ser inseridos no banco.
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<!--pessoa Table -->
<pessoa id="1" nome="MARIA" fone="99999999" />
<pessoa id="2" nome="JOSEFA" fone="88888888" />
</dataset>
Aqui está a classe que estou executando
package test;
import java.io.FileInputStream;
import org.dbunit.DBTestCase;
import org.dbunit.PropertiesBasedJdbcDatabaseTester;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
public class SampleTest extends DBTestCase {
public SampleTest() {
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, "org.postgresql.Driver");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, "jdbc:postgresql://localhost:5432/DBUNITTEST");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_USERNAME, "postgres");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_PASSWORD, "postgres");
}
protected IDataSet getDataSet() throws Exception {
return new FlatXmlDataSetBuilder().build(new FileInputStream("datasource/input.xml"));
}
}
Aqui é o código SQL que criei a tabela no PostgreSQL, no banco de dados chamado DBUNITTEST
CREATE TABLE pessoa
(
id integer,
nome character varying(50),
fone character varying(8)
)
E então, alguma sugestão pra fazer essa bagaça funcionar?
Enfim consegui fazer funcionar.
Jars utilizados na aplicação:
banco de dados agenda criado no PostgreSQL
CREATE TABLE pessoa (
ID INTEGER NOT NULL,
NOME CHARACTER VARYING(20) NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE telefone (
COD INTEGER NOT NULL,
FONE CHARACTER VARYING(10) NOT NULL,
COD_CLIENTE INTEGER REFERENCES pessoa NOT NULL,
PRIMARY KEY(COD)
);
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<!--tabela pessoa -->
<pessoa id="1" nome="MARIA" />
<pessoa id="2" nome="ANA" />
<!--tabela telefone -->
<telefone cod="1" fone="8399999999" cod_cliente="1" />
<telefone cod="2" fone="8388888888" cod_cliente="2" />
</dataset>
package dbunit;
import java.io.FileInputStream;
import org.dbunit.DBTestCase;
import org.dbunit.PropertiesBasedJdbcDatabaseTester;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
import org.junit.Before;
import org.junit.Test;
public class TestClass extends DBTestCase {
public TestClass(){
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, "org.postgresql.Driver");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, "jdbc:postgresql://localhost:5432/agenda");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_USERNAME, "postgres");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_PASSWORD, "postgres");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_SCHEMA, "public");
}
@Before
public void init() throws Exception {
}
@Test
public void testando() throws Exception {
System.out.println("SUCESSO");
}
protected IDataSet getDataSet() throws Exception{
// Pega o arquivo para inserir
return new FlatXmlDataSetBuilder().build((new FileInputStream("datasource/dataset.xml")));
}
}
package dbunit;
import java.io.FileInputStream;
import junit.framework.TestCase;
import org.dbunit.DBTestCase;
import org.dbunit.IDatabaseTester;
import org.dbunit.JdbcDatabaseTester;
import org.dbunit.PropertiesBasedJdbcDatabaseTester;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
import org.dbunit.operation.DatabaseOperation;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TestClass2 extends TestCase{
private IDatabaseTester databaseTester;
private IDatabaseConnection connection;
@Before
protected void setUp() throws Exception{
// Pega a conexão com o banco de dados
databaseTester = new JdbcDatabaseTester("org.postgresql.Driver","jdbc:postgresql://localhost:5432/agenda", "postgres", "postgres");
databaseTester.setDataSet(getDataSet());
connection = databaseTester.getConnection();
databaseTester.onSetup();
}
protected IDataSet getDataSet() throws Exception{
return new FlatXmlDataSetBuilder().build((new FileInputStream("datasource/dataset.xml")));
}
@Test
public void testando() throws Exception{
DatabaseOperation.DELETE_ALL.execute(connection,getDataSet());
System.out.println("DELETADO COM SUCESSO!");
}
}