1 / 14

DBUnit Framework Componentes: Fábio Gomes Claver Pari Eni Conde

SENAC – Curso de Pós-graduação em Engenharia de Software com J2EE Módulo: Web Application Interface - Turma 2 Prof. Ismael. DBUnit Framework Componentes: Fábio Gomes Claver Pari Eni Conde. Framework. JUnit Framework.

Download Presentation

DBUnit Framework Componentes: Fábio Gomes Claver Pari Eni Conde

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SENAC – Curso de Pós-graduação em Engenharia de Software com J2EEMódulo: Web Application Interface - Turma 2 Prof. Ismael DBUnit Framework Componentes: Fábio Gomes Claver Pari Eni Conde

  2. Framework

  3. JUnit Framework • É utilizado por aqueles que desejam implementar testes unitários em Java. • Com JUnit, o programador tem uma ferramenta que o ajuda a eliminar os erros de seu código de maneira automatizada. Uma vez programado pode ser executado quantas vezes necessário. • Tipicamente um teste unitário executa um método individualmente e compara uma saída conhecida após o processamento da mesma. Por exemplo: • Assert.assertEquals(2 , somaMetodo(1,1)); • Assert.assertEquals("A lista vazia deve ter 0 elementos", 0, listaVazia.size());

  4. DBUnit Framework • DbUnit é mais abrangente que o popular JUnit test Framework. Além de implementar todas as suas funcionalidades acrescenta outras específicas para Banco de Dados. • Auxilia de forma racional a execução de Testes automatizados que utilizam Banco de Dados. • Mantem o Banco de Dados no seu estado inicial evitando dados corrompidos por falhas da fase de teste. • Sua realização é importante no sentido de gerir os dados dos testes. • Pode manipular grande massa de dados.

  5. DBUnit Framework • Possui mecanismos simples para exportar e importar tabelas para posterior utilização. • Exportando uma tabela public void testExportData() throws Exception { IDataSet dataSet = getConnection().createDataSet(new String[] { TABLE_NAME }); URL url = DatabaseTestCase.class.getResource("/input.xml"); assertNotNull(url); File inputFile = new File(url.getPath()); File outputFile = new File(inputFile.getParent(), "output.xml"); FlatXmlDataSet.write(dataSet, new FileOutputStream(outputFile)); assertEquals(FileUtils.readFileToString(inputFile, "UTF8"), FileUtils.readFileToString(outputFile, "UTF8")); }

  6. DBUnit Framework • O DBUnit permite que arquivos XML possam ser criados manualmente, a partir do zero. Ou ainda carregados a partir de uma tabela. • Possui um mecanismo simples, baseado em XML, para carga de dados. • Criando um arquivo XML protected IDataSet getDataSet() throws Exception { loadedDataSet = new FlatXmlDataSet( this.getClass().getClassLoader().getResourceAsStream("input.xml")); return loadedDataSet; }

  7. DBUnit Framework Possui métodos para comparação entre tabelas. Comparando tabelas • public class Assertion { public static void assertEquals(ITable expected, ITable actual) public static void assertEquals(IDataSet expected, IDataSet actual) } • Assertion.assertEquals(new SortedTable(expected), new SortedTable(actual, expected.getTableMetaData())); • public void testCompareQuery() throws Exception { QueryDataSet queryDataSet = new QueryDataSet(getConnection()); queryDataSet.addTable(TABLE_NAME, "SELECT * FROM “ + TABLE_NAME); Assertion.assertEquals(loadedDataSet, queryDataSet); }

  8. DBUnit Framework • O ciclo de vida do Teste DbUnit • O cenário básico para a execução de teste com DbUnit é o seguinte: • remover qualquer dado antigo, de testes anteriores, no banco de dados. • carregar alguns dados do sistema de arquivos para o banco de dados. • executar alguns testes, utilizando métodos DbUnit para fazer as comparações.

  9. DBUnit Framework • O ciclo de vida do Teste DbUnit • As duas primeiras operações ocorrem durante a execução do método JUnit setup(). • Os testes podem rodar um pouco mais devagar, mas a idéia é que o SetUp somente carregue os dados para um teste específico, ao invés dos dados requeridos para todos os testes. • Note que a restauração do banco é feita antes de executar os testes e não após. Esta é a prática recomendada pelos autores do DbUnit.

  10. DBUnit Framework • Permite ver como o métodos setUp() e tearDown() são executados no DatabaseTestCase classe. protected void setUp() throws Exception { super.setUp(); executeOperation(getSetUpOperation()); } protected void tearDown() throws Exception { super.tearDown(); executeOperation(getTearDownOperation()); }

  11. DBUnit Framework Conectando o banco protected IDatabaseConnection getConnection() throws Exception { Class driverClass = Class.forName("com.mysql.jdbc.Driver"); Connection jdbcConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/Framework Database", "root", “password"); return new DatabaseConnection(jdbcConnection); }

  12. DBUnit Framework • Boas práticas • Unit Test Frameworks - é um elemento chave Importante para Programação em Desenvolvimento Ágil. • Elas ajudam a garantir baixo nível de correção de código, reduzir tempo de ciclo do desenvolvimento do software, melhorar a produtividade do desenvolvedor, e produzir software mais robustos.

  13. DBUnit Framework Resumo • DbUnit é uma ferramenta poderosa e simples de usar, permitindo o desenvolvimento de aplicações de bancos de dados. • DbUnit é projetado em torno de interfaces Java flexíveis, tornando fácil adaptar aos requisitos da aplicação. • É simples incluir o DbUnit como parte do processo de desenvolvimento da sua aplicação de banco de dados e aproveitar as vantagens das suas poderosas caracteristicas de economia de tempo.

  14. DBUnit Framework Resumo • O DbUnit framework tem a habilidade de gerenciar o estado de um banco de dados, em que através de testes de ciclo de vida, permite a criação e adoção de test-case rápidos. • Os testes que utilizam o framework do DbUnit são facilmente automatizados. • DbUnit possui design elegante e por ser de fácil aprendizado, logo faz parte de uma estratégia eficaz de testes, proporcionando código com estabilidade aumentando dramaticamente a confiança de sua equipe de desenvolvimento.

More Related