Banco de dados dedicado
Nossos testes automatizados utilizam o módulo BI para escrever as próprias codificações de teste, utilizando diversas ferramentas e mapeamentos dos próprios componentes de telas do ERP. Mas tem um podem, o banco de dados! O nosso ERP tem um banco firebird (FDB), todas as operações SQL já tem um apply fixado para o banco vinculado ao ERP, mas os nossos testes automatizados utilizam um banco de dados dedicado, qual foi a solução? Utilizar conexão ODBC!
Especificações da Implementação
Como eu já comentei, nosso ERP tem métodos nativos para realizar operações e centralizar todo o tratamento das operações e transações. Com o ODBC não é diferente, nos temos os seguintes métodos ODBC:
| Método | Finalidade |
|---|---|
| ExecuteCommandODBC | Operações SQL da natureza de escrita, como INSERT e UPDATE. Executa no cliente. |
| ExecuteCommandODBCServ | Operações SQL da natureza de escrita, como INSERT e UPDATE. Serv executa no servidor. |
| ExecuteReaderODBC | Operações SQL de leitura com retorno de um conjunto de registros (cliente). |
| ExecuteReaderODBCServ | Operações SQL de leitura com retorno de um conjunto de registros (servidor). |
| ExecuteScalarODBC | Operações SQL de leitura com retorno de um único valor/escalar (cliente). |
| ExecuteScalarODBCServ | Operações SQL de leitura com retorno de um único valor/escalar (servidor). |
A diferença entre 64 bits e 32 bits
Nosso ERP tem uma diferença fundamental em sua arquitetura, é uma aplicação desktop que é servida por um servidor de aplicação de 64 bits, mas os clientes são 32 bits (módulos que o usuário interage por telas nativas do ERP). Os métodos ExecuteOperacaoODBC e ExecuteOperacaoODBCServ tem essa mesma diferença, métodos com o Sufixo 'Serv' são direcionados para serem executados no Servidor de 64 bits,
Por tanto, nos testes, decidimos adotar os métodos de conexão ODBC de 32 bits, a justificativa para isso foi justamente que as codificações dos testes interagem diretamente com as telas nativas no cliente, que como já foi dito anteriormente, é 32 bits.
Centralização em P39_TDD_ODBC
Essa unit foi criada justamente para disponibilizar métodos com a configuração centralizada, ela possui um uses na unit de CONSTANTES, a qual tem a declaração da String de conexão ODBC que é utilizada. Dessa forma, todas as codificações vão usar os métodos implementados na abstração de P39_TDD_ODBC!
Isso não quer dizer que não temos espaço para adicionar mais uma constante como TESTE_AUTOMATIZADO_64B e criar as implementações em P39_TDD_ODBC, porém isso se mostra desnecessário justamento pelo fato de que os testes são executados no cliente, mas existe a possibilidade se futuramente surgir a necessidade.