Eu usei Java antes e poderia fazer qualquer coisa com o Eclipse. Agora, como quero usar o Delphi para modificar um software de mensagens instantâneas, me pergunto como mover o sistema de reconstrução e teste de unidade para Delphi. O livro diz que a adição de testes de unidade ao código existente pode aprofundar sua compreensão do código e servir de base para melhorar o código. Portanto, para construir uma plataforma tão ágil, fiz uma pequena tentativa com o Delphi2005 e o Dunit e registrei os resultados abaixo para compartilhar com você.
1. Baixe Delphi2005
Como a Borland não vende versões profissionais na China, dado o preço alto dos arquitetos e versões corporativas, ele pode baixar apenas uma versão D da Internet para uso pessoal. O Delphi2005 é relativamente grande em tamanho, e o Update1 também requer CD, por isso é recomendável usar o BT para baixar a versão 2CD. O endereço de semente é o seguinte:
http://www.delphhifans.com/softview/821.html
2. Faça o download do SP1 do Delphi2005
Dizem que, após a aplicação desse patch, ele pode ser mais rápido, mas o patch demora a instalação e você ainda precisa usar um CD. O endereço de download é o seguinte:
http://www.delphhifans.com/softview/970.html
3. Baixe Dunit
https://sourceforge.net/projects/dunit/
4. Instale o delphi2005+sp1
Observe que há um registro no Keygen e, ao instalar, você deve instalar as versões .NET e Win32 do Delphi ao mesmo tempo, mas o C# Builder não importa. Porque se você instalar apenas a versão Win32, a função de reconstrução não estará disponível (este é um bug no Delphi2005, que se manifesta como uma janela de exceção do .NET ao refatorar).
5. Simplifique o Delphi2005
Como a versão .NET foi instalada ao mesmo tempo na etapa anterior, Delphi ficou muito lento ao iniciar. Isso pode ser alcançado modificando o registro e excluindo alguns pacotes IDE. O método específico é adicionar o parâmetro -rxxx após o alvo de atalho Delphi, ou seja, bds.exe -rxxx. Este XXX deve especificar e, em seguida, encontrará esses malditos pacotes em hkey_current_user/software/borland/xxx (este é o nome que você selecionou xxx) /3.0/ Pacotes de IDE conhecidos. Observe que você não pode excluí -lo de maneira muito limpa, como outras moléculas purificadas do Win32 na Internet, pois será inútil para a reconstrução. Uma lista relativamente simples que obtive depois de experimentar muitas vezes é a seguinte
"$ (Bds) // bin // vclmenudesigner90.bpl" = "(sem título)"
"$ (Bds) // bin // win32debugproide90.bpl" = "(sem título)"
"$ (Bds) // bin // htmide90.bpl" = "pacote de designer html"
"$ (Bds) // bin // iteidew3290.bpl" = "ambiente de tradução integrado de Borland para Win32"
"$ (Bds) // bin // srcmanide90.bpl" = "(sem título)"
"$ (Bds) // bin // TODOIDE90.BPL" = "Borland TODO"
"$ (Bds) // bin // htmlhelp290.bpl" = "Borland Htmlhelp Viewer"
"$ (Bds) // bin // idefilefilters90.bpl" = "IDE FileFilters"
"$ (Bds) // bin // startpageide90.bpl" = "Borland Start Page IDE Package"
"$ (Bds) // bin // refactorideide90.bpl" = "pacote de refatoramento do Borland Core"
"$ (Bds) // bin // dbkdebugide90.bpl" = "(sem título)"
"$ (Bds) // bin // excepciondiag90.bpl" = "(sem título)"
"$ (Bds) // bin // implantide90.bpl" = "Gerenciador de implantação"
"$ (Bds) // bin // plugview90.bpl" = "pacote de visualização de árvore combinada"
"$ (Bds) // bin // CoreProide90.bpl" = "Core Ide Pro Package"
"$ (Bds) // bin // iDeTools90.bpl" = "Build Tools"
"$ (Bds) // bin // unittestide90.bpl" = "(sem título)"
"$ (Bds) // bin // historyide90.bpl" = "(sem título)"
"$ (Bds) // bin // htmltidy90.bpl" = "html tidy formatter"
"$ (Bds) // bin // htmlfmt90.bpl" = "html interno formatador"
"$ (Bds) // bin // mlcc90.bpl" = "pacote de conclusão do código de idioma de marcação"
"$ (Bds) // bin // delphivclide90.bpl" = "Delphi VCL Designer IDE Package"
"$ (Bds) // bin // delphicoreproide90.bpl" = "(sem título)"
"$ (Bds) // bin // win32debugide90.bpl" = "(sem título)"
"$ (Bds) // bin // htmlide90.bpl" = "(sem título)"
"$ (Bds) // bin // delphide90.bpl" = "Delphi Win32 IDE Personalidade"
"$ (Bds) // bin // mtspro90.bpl" = "(sem título)"
"$ (Bds) // bin // mtsent90.bpl" = "(sem título)"
"$ (Bds) // bin // iteideNet90.bpl" = "Borland Integrated Translation Environment para .net"
"$ (Bds) // bin // netimportwiz90.bpl" = "(sem título)"
"$ (Bds) // bin // dataexplorer90.bpl" = "(sem título)"
Embora ainda seja um pouco lento para começar, pode finalmente suportá -lo.
6. Compilar e instalar dunit
Use o método que você conhece para compilar o Dunit no DCU e coloque -o no diretório que você especificou. E adicione este diretório ao caminho da biblioteca das ferramentas Delphi-> Opções do ambiente-> Delphi Opções-> Biblioteca-Win32.
Também compile dunit.exe
7. estabelecer um projeto
A maneira como eu recomendo é separar a interface e o plano de fundo ao escrever um programa Delphi, especificamente para abrir dois projetos, um projeto VCL comum e o outro projeto DLL. Não, não, não pretendo deixar você compartilhar código na DLL. Este projeto DLL contém arquivos que são todos conteúdo em segundo plano, bem como testes em segundo plano. A DLL gerada é usada para Dunit, a partir da qual a Dunit pode ler o teste e executá -la. De fato, o projeto na parte da GUI contém todos os arquivos.
O projeto é dividido em três partes: GUI, núcleo e testcore. O Projeto Um inclui GUI+Core, e o Projeto Dois inclui Core+TestCore. A saída do Projeto 1 é o programa Win32exe. A segunda saída do projeto é o programa Win32DLL.
Então você pode colocar esses dois projetos em um grupo de projetos.
8. Escreva testes
O Projeto 1 não é diferente de escrever um programa Dephi. Os testes são escritos na engenharia nº 2 e chamo o nome da engenharia nº 2 do núcleo. Vamos adicionar um teste básico ao núcleo para verificar se 1+1 é igual a 2.
Crie teste
unidade testbasic;
interface
usos
TestFramework;
tipo
Tbasic = classe
público
função add (a, b: número inteiro): inteiro;
fim;
Ttestbasic = classe (ttestcase)
Privado
Fbasic: tbasic;
público
configuração do procedimento;
PROCEDIMENTO DEVIDO;
publicado
procedimento testadd;
fim;
Implementação
function tbasic.add (a, b: inteiro): número inteiro;
Começar
Resultados: = a + b;
fim;
procedimento ttestbasic.setup;
Começar
Fbasic: = tbasic.create;
fim;
procedimento ttestbasic.teardown;
Começar
Fbasic.free;
fim;
procedimento ttestbasic.testadd;
Começar
Checkequals (2, fbasic.add (1, 1));
fim;
Inicialização
RegisterTest ('', ttestbasic.suite);
fim.
Modificar core.bdsproj (kao, que sufixo estranho)
Mudança BEGN END
exportações
Nome registrado no nome 'teste';
fim.
E adicione o teste de teste na seção de usos.
A Dunit usa essa função de exportação para encontrar o teste que registramos na DLL.
9. Run Dunit
Adicione Dunit ao menu Ferramentas, é muito mais conveniente. Só que os parâmetros são difíceis de preencher. Eu não usei a macro dentro, apenas preenchi o caminho absoluto. Se você preencher o caminho absoluto como eu, selecione Dunit no menu Ferramentas e poderá ver diretamente uma lista de testes.
Se você não estiver adicionando Dunit ao menu Ferramentas, precisará encontrar a DLL compilada no projeto Core, Core.dll, na janela Seleção de arquivos do arquivo-> Carregar teste.
———
Até agora, existem funções de refatoração e testes de unidade. Tudo o que resta é adicionar testes ao código existente e, em seguida, refactá -los lentamente.