DUnit testes em um projeto de Midas / DataSnap
-
05-07-2019 - |
Pergunta
Como é que um configuração DUnit testes em um projeto de Midas / DataSnap em Delphi 2006
Editar
Como é que um configurar um teste Dunit em um TRemoteDataModule O assistente de projeto em Delphi 2006 não funciona com TRemoteDataModule
Solução
A questão não inteiramente fazer sentido. Testes de unidade são realizadas em um projeto separado, e não dentro de seu servidor DataSnap. Geralmente, os testes que se conectam a um banco de dados são testes de integração em vez de testes de unidade. O que é, exatamente o que você deseja teste? Se é os métodos de utilitário dentro de, digamos, um TRemoteDataModule, você deve extrair os para fora em uma classe separada, como métodos de classe, e testá-los lá. Você não deveria ter que instanciar um servidor de aplicativos para executar testes de unidade.
Outras dicas
Sorry for a resposta concisa acima, as mensagens iPads sempre que eu atingidas retorno ao editar um post.
Dunit é projetado para executar testes de unidade, eo que você está tentando fazer não é o teste de unidade.
Um teste não é um teste de unidade se:
- Ele fala com o banco de dados
- Ele se comunica através da rede
- Toca o sistema de arquivos
- Não podem ser executados ao mesmo tempo que qualquer outro de seus testes de unidade
- Você tem que fazer coisas especiais para o seu ambiente (tais como a edição de arquivos de configuração) para executá-lo.
- Não pode ser executado isoladamente
Se você seguir os princípios sólidos (especialmente o princípio da responsabilidade única), utilizando Dunit para testar sua classe (sem testar a lógica relacionada Midas / DataSnap) deve ser razoavelmente simples. E realmente, você não deve precisar para testar a lógica Midas / DataSnap.
Mas há maneiras de realizar testes de integração e comportamentais em aplicações Delphi.
Pessoalmente, eu não usaria TestComplete porque não integrar-se bem com qualquer tipo de servidor de CI e os testes são armazenados em um formato binário proprietário (que faz a fusão diferenças ou manter mudanças em qualquer problemático sistema de controle de origem).
Você poderia tentar dSpec , mas não estou certo de Jody Dawkins é mantê-la mais.
Eu tenho usado o AutoIt BASIC linguagem de script diretamente em alguns projetos, e também usou sua NET montagem para conduzir uma aplicação Delphi usando NUnit e C # na outra. Embora não seja perfeito, o # solução NUnit / C era mais elegante do que qualquer coisa que eu tinha visto para a realização de aplicações Delphi teste funcional / comportamental. Ele fez demorar algum esforço para obtê-lo configuração embora.