TestSources adalah alat manajemen file uji untuk .NET Core dan .NET Framework
TestSource memudahkan ditangani, mengatur, dan menggunakan file uji dalam tes .NET. Ini sangat menyederhanakan pekerjaan yang biasa karena harus mengatur alat/kode manajemen file, mengimplementasikan validasi dan mengaktifkan akses yang tepat ke file dan isinya ... Itu harus diatur secara manual pada setiap proyek pengujian yang mengelola file apa pun, waktu konsumsi dan kode berulang. Itu jahat. Tapi tidak lebih, di sini adalah sumber tes untuk membantu.
Untuk memulai, instal Paket TestSources Nuget:
dotnet add package TestSources Dalam akar proyek, tambahkan folder baru, bernama " __testsources__ ". Itu harus dalam huruf kecil, dengan dua karakter garis bawah " _ " sebelum dan sesudah. Di dalam folder Tessources kami, buat file teks bernama "atextfile.txt" dan di dalam menambahkan "beberapa teks", atau teks kesukaan Anda.
Untuk mendapatkan file tes ini dan menggunakannya dalam tes unit (atau integrasi) Anda, ikuti langkah selanjutnya:
Masukkan pernyataan testsources getFile TestSource.GetFile("aTextFile.txt"); ke dalam tes unit Anda.
Contoh:
/// <summary>
/// Tests if the test file contains some text.
/// </summary>
[ Fact ]
public void TestThatTheTextFileContainsText ( )
{
// arrange
string fileName = "aTextFile.txt" ;
// act
string textInsideTheFile =
TestSource . GetFile ( fileName )
. AsString ( ) ;
// Assert
Assert . NotEmpty ( textInsideTheFile ) ;
} Pernyataan TestSource.GetFile() akan mendapatkan file dengan nama yang ditentukan yang terletak di folder " __testsources__ ". Selanjutnya, pernyataan AsString() akan mendapatkan isinya dan mengirimkannya siap digunakan dalam bentuk string, dengan pengkodean UTF-8. (Ini juga dapat dikonfigurasi)
Anda dapat membuat folder di dalam folder " __testsources__ ", tanpa batas apa pun kecuali yang diatur oleh sistem operasi Anda.
Sama halnya dengan file, Anda dapat menambahkannya di level apa pun dan menggunakan imajinasi Anda untuk mengatur file uji Anda sampai menyenangkan Anda.
Pernyataan TestSource.GetFile(filename, true) akan mendapatkan file apa pun yang berada di bawah direktori root testsources, mengingat bahwa itu ada dan Anda telah mengetiknya dengan benar.
Selain itu, Anda bisa mendapatkan referensi ke folder dengan pernyataan serupa:
TestSource.GetFolder(foldername) akan menemukan folder bernama foldername di akar direktori root TestSources, sedangkan TestSource.GetFile(filename, true) akan menemukan folder yang disebutkan di salah satu subfoldernya.
File -file tersebut memenuhi antarmuka ITestSourceFile dan ini memungkinkan kami untuk memeriksa induknya, mendapatkan nama file, nama lengkapnya termasuk jalur dan kemudian beberapa ekstensi seperti:
OpenRead() - Membuka file untuk membaca mengembalikan aliran file.AsString() - Membaca file saat ini dan mengembalikan kontennya sebagai string dengan pengkodean UTF8 default, yang dapat ditimpa.AsByteArray() - Membaca file saat ini dan mengembalikan array byte kontennya.AsFileStream() - Membaca file saat ini dan mengembalikan filestream ke sana.AsMemoryStream() - Membaca file saat ini dan mengembalikan isinya sebagai memorystream.AsStream() - Membaca file saat ini dan mengembalikan isinya sebagai aliran.GetHash() - Mengembalikan hash file, diberi algoritma hash kriptografi.AsType<T>() - Mengembalikan konten file sebagai tipe konkret, deserializing konten JSON -nya.AsJson() - Membaca file saat ini dan mengembalikan kontennya sebagai string JSON dengan penyandian UTF8 default, yang dapat ditimpa. Folder atau direktori memenuhi antarmuka ITestSourceDir dan ini memungkinkan kami untuk memeriksa induknya, mendapatkan nama folder, nama lengkapnya termasuk jalur dan kemudian beberapa ekstensi seperti:
GetFiles() - Mengembalikan daftar file yang terkandung di folder ini. Tentu saja, memenuhi antarmuka ITestSourceFile.GetFolders() - Mengembalikan daftar folder yang terkandung pada folder ini. Tentu saja, memenuhi antarmuka ITestSourcedir. (Jika tidak ada file atau folder, kumpulannya kosong) Mereka hanya bekerja, tidak ada yang khusus untuk didirikan di sana.
Proyek ini telah mengadopsi Kode Etik yang ditentukan oleh Kontributor Perjanjian untuk mengklarifikasi perilaku yang diharapkan di komunitas kami. Untuk informasi lebih lanjut, lihat Kode Etik Life OSS Swiss.