Skip to content
mobius1qwe edited this page Nov 6, 2026 · 1 revision

Home > Testes em memória 🚧

Testar o servidor sem abrir porta

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).

O que muda em relação à rede

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.

Veja também

  • O cliente
  • Exemplo: InProcTestExample (Delphi e Lazarus)

Clone this wiki locally