Repository navigation
testes em memoria
Home > Testes em memória 🚧
Important
Em desenvolvimento (2.0). Ainda não está numa versão lançada e pode mudar.
Vale para a 2.0 · Delphi XE em diante e Lazarus/FPC 3.2 em diante · Nível: básico
Em uma frase: o TRALInProcServer roda as rotas da aplicação na memória, e um
TRALClient com o motor InProc fala com ele por inproc://nome: plugins,
autenticação, módulos e compressão rodam como na rede, sem porta nem firewall.
Você vai precisar: o pacote InProcRAL.
uses RALInProc, RALClient;
Servidor := TRALInProcServer.Create(nil);
Servidor.ServerName := 'loja';
MontarRotas(Servidor); // as mesmas rotas do servidor de produção
Servidor.Active := True;
Cliente := TRALClient.Create(nil);
Cliente.EngineType := 'InProc';
Cliente.BaseURL.Text := 'inproc://loja';
Resp := nil;
Cliente.Get('produtos', Resp);
Assert.AreEqual(200, Resp.StatusCode); // DUnitX
Resp.Free;Cabe num teste do DUnitX, DUnit ou fpcunit: crie o servidor no Setup, libere no
TearDown. Cada ServerName ativo é único no processo: ativar um segundo com o mesmo
nome levanta [RAL 6400] e o deixa parado; um nome que não existe dá erro de conexão
(rteConnect).
Nada nas rotas. O IP do cliente é 127.0.0.1, não há TLS, e o corpo passa como os
motores de rede o passariam (comprimido, cifrado), então os plugins são exercitados
de verdade.
- O cliente
- Exemplo:
InProcTestExample(Delphi e Lazarus)
Começar
Servidor
- Rotas e parâmetros
- Rotas avançadas: tipos, grupos, versões 🚧
- Ler o pedido e responder
- Objetos no corpo 🚧
- Resposta em fluxo 🚧
- Plugins 🚧
- Autenticação
- Banco de dados (DBWare)
- Servir site e arquivos
- Swagger e Postman
- Servidor SOAP 🚧
- HTTPS
- Criptografia ponto a ponto
- Segurança para produção
- Colocar no ar
- Desempenho
- Testes em memória 🚧
MQTT 🚧
- O que é e quando usar 🚧
- Cliente MQTT 🚧
- Broker MQTT 🚧
- MQTT-SN 🚧
- Ponte REST 🚧
- Segurança 🚧
- Rede ruim 🚧
Cliente
Motores
Avançado
Ajuda
- Problemas comuns
- Atualizar o Indy
- Várias versões do Delphi
- Vídeos e guias
- Módulos de terceiros
- Licenças
- Contribuir
- Roadmap e changelog
🚧 = em desenvolvimento, pode mudar