Un servidor simulado TCP/UDP simple para usar en proyectos de prueba que prueban proyectos basados en .Net Core.
Cuando estaba trabajando en el proyecto Cimon.Net, me di cuenta de que no podía simular sockets con bibliotecas existentes, así que cambié mi proyecto para crear sockets falsos. Pero el problema aún existía, así que comencé a escribir este proyecto y finalmente lo usé en Cimon.Net.
Puede instalar Rony.Net
con la consola del Administrador de paquetes NuGet:
Install-Package Rony.Net -Version 0.1.2
O mediante la interfaz de línea de comandos de .NET Core:
dotnet add package Rony.Net --version 0.1.2
Con Rony.Net puedes crear 3 tipos de Servidor:
Puede crear y ejecutar servidores simulados como se muestra a continuación. El puerto, la IP y otras configuraciones se pueden configurar a través de constructores:
using var tcpServer = new MockServer ( new TcpServer ( 3000 ) ) ;
tcpSever . Start ( ) ;
using var tcpSslServer = new MockServer ( new TcpServerSsl ( 4000 , certificateName , SslProtocols . None ) ) ;
tcpSslServer . Start ( ) ;
Debe abordar un certificate
válido e instalado que tenga permiso de lectura en su clave privada y también puede configurar SslProtocol
según sus requisitos.
using var udpServer = new MockServer ( new UdpServer ( 5000 ) ) ;
Preste atención a que no es necesario iniciar el servidor UDP debido a su naturaleza.
Luego, puede utilizar un cliente normal para conectarse y enviarles una solicitud, como se muestra a continuación:
using var client = new TcpClient ( ) ;
await client . ConnectAsync ( IPAddress . Parse ( "127.0.0.1" ) , 3000 ) ;
var client = new UdpClient ( ) ;
client . Connect ( IPAddress . Parse ( "127.0.0.1" ) , 5000 ) ;
Puede usar mockServer.Mock
para administrar enviar/recibir datos, luego el servidor devolverá datos configurados, según los datos enviados:
mockServer . Mock . Send ( "Test String" ) . Receive ( "Test Response" ) ;
mockServer . Mock . Send ( new byte [ ] { 1 , 2 , 3 } ) . Receive ( new byte [ ] { 3 , 2 , 1 } ) ;
mockServer . Mock . Send ( "abcd" ) . Receive ( x => x . ToUpper ( ) ) ;
Una opción importante al usar mockServer.Mock
es agregarle Any
solicitud, luego responderá a cualquier solicitud no configurada basada en esta configuración (versión 0.1.1 y posterior). Puede configurar el servidor para esta opción usando una cadena vacía en Send()
método, como a continuación:
mockServer . Mock . Send ( "" ) . Receive ( "Test Response" ) ;
Puedes usar mockServer.Mock
antes o después de mockServer.Run()
. Para obtener más detalles, consulte Proyectos de prueba.
Necesita al menos Visual Studio 2019 (puede descargar la Community Edition de forma gratuita).
Todas las pruebas utilizan Xunit; para ejecutar el servidor TCP con SSL/TLS, debe cambiar el campo _certificateName
por un nombre de certificado en su máquina. Preste atención a que debe tener permiso de lectura en la clave privada del certificado.