Server tiruan TCP/UDP sederhana untuk digunakan dalam proyek pengujian yang menguji proyek berbasis inti .Net.
Ketika saya sedang mengerjakan proyek Cimon.Net, saya menyadari bahwa saya tidak dapat membuat tiruan soket dengan perpustakaan yang ada, Jadi saya mengubah proyek saya untuk membuat soket palsu. Tapi masalahnya masih ada, Jadi saya mulai menulis proyek ini dan akhirnya saya menggunakannya di Cimon.Net.
Anda dapat menginstal Rony.Net
dengan NuGet Package Manager Console:
Install-Package Rony.Net -Version 0.1.2
Atau melalui antarmuka baris perintah .NET Core:
dotnet add package Rony.Net --version 0.1.2
Dengan Rony.Net Anda dapat membuat 3 jenis Server :
Anda dapat membuat dan menjalankan server tiruan seperti di bawah ini. Port, IP, dan pengaturan lainnya dapat dikonfigurasi melalui konstruktor :
using var tcpServer = new MockServer ( new TcpServer ( 3000 ) ) ;
tcpSever . Start ( ) ;
using var tcpSslServer = new MockServer ( new TcpServerSsl ( 4000 , certificateName , SslProtocols . None ) ) ;
tcpSslServer . Start ( ) ;
Anda harus alamat certificate
yang valid dan terinstal yang Anda telah membaca izin pada kunci pribadinya, dan Anda juga dapat mengatur SslProtocol
berdasarkan kebutuhan Anda.
using var udpServer = new MockServer ( new UdpServer ( 5000 ) ) ;
Harap perhatikan bahwa server UDP tidak perlu dijalankan, karena sifatnya.
Kemudian Anda dapat menggunakan klien normal untuk menghubungkan dan mengirimkan permintaan kepada mereka, seperti di bawah ini:
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 ) ;
Anda dapat menggunakan mockServer.Mock
untuk mengelola data Kirim/Terima, kemudian server akan mengembalikan data yang dikonfigurasi, berdasarkan data yang dikirim:
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 ( ) ) ;
Opsi penting dalam menggunakan mockServer.Mock
adalah menambahkan permintaan Any
ke dalamnya, lalu ia akan membalas permintaan apa pun yang belum dikonfigurasi berdasarkan konfigurasi ini (verion 0.1.1 dan yang lebih baru), Anda dapat mengonfigurasi server untuk opsi ini dengan menggunakan string kosong di Send()
, seperti di bawah ini:
mockServer . Mock . Send ( "" ) . Receive ( "Test Response" ) ;
Anda dapat menggunakan mockServer.Mock
sebelum atau sesudah mockServer.Run()
. Untuk lebih jelasnya silakan periksa proyek Uji.
Anda memerlukan setidaknya Visual Studio 2019 (Anda dapat mengunduh Edisi Komunitas secara gratis).
Semua pengujian menggunakan Xunit, untuk menjalankan server TCP dengan SSL/TLS, Anda harus mengubah bidang _certificateName
menjadi nama sertifikat di mesin Anda. Harap perhatikan bahwa Anda harus memiliki izin membaca pada kunci pribadi sertifikat.