Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

GenFu Kütüphanesi İle Test/Dummy Data Oluşturmak

Merhaba,

Yazılım dünyasında anlık olarak gerçekleştirilmesi gereken test ve operasyonel süreçlerin icra edilebilmesi için olmazsa olmazımız diyebileceğimiz nominal, gerçek olmayan yani kukla niteliğinde iyi huylu sahte bilgilere Dummy Data denmektedir. Dummy Data’lar, anlık olarak test edilecek yapının ihtiyacı olan organik verilerin hazır olmaması yahut o verileri sağlayacak olan dış servisin bir şekilde sağlıklı çalışamaması gibi türlü sebeplerden dolayı, bu sebeplerin hallolmasını beklemeksizin gayeye uygun bir şekilde o anki ihtiyaca istinaden test işleminin gerçekleştirilmesini sağlayacak kadar numune verinin oluşturulmasını ve bu verilerin senaryoya uygun bir şekilde operasyona tabi tutulup testin simüle edilmesini sağlamaktadırlar. Haliyle biz geliştiriciler açısından dummy data’lar, hayat kurtaran ve olabildiğince zamansal israfı minimize eden yapılar olsalar da, maliyet açısından bir tek hadikapları vardır ki, o da, oluşturulmalarının ve yönetilmelerinin oldukça zor ve zahmetli olmalarıdır. İşte bu noktada GenFu kütüphanesi ile bu zahmeti olabildiğince törpüleyerek dummy data’larımızı rahatlıkla oluşturabilmekte ve yönetebilmekteyiz. Hadi gelin bunun nasıl olduğunu hep beraber inceleyelim…

GenFu Kütüphanesi Nedir? Nasıl Kullanılır?

Gerçekçi test verileri oluşturmak için kullanılan bir kütüphanedir. Test verisi oluşturulması gereken model için, verilerini dahili olarak barındırdığı bir veritabanından temin eden ya da rastgele oluşturan ve reflection yoluyla tüm property’lere uygulayan bir işlevselliğe sahiptir.

GenFu kütüphanesini kullanabilmek için aşağıdaki talimatlar eşliğinde ilgili kütüphaneyi projenize dahil edebilirsiniz.

Package Manager : Install-Package GenFu
.NET CLI : dotnet add package GenFu

Hızlı bir şekilde örnek kullanım gerçekleştirmek için aşağıdaki modeli ele alarak başlayabiliriz;

public class Person
{
    public string Name { get; set; }
    public string Surname { get; set; }
    public int Age { get; set; }
    public Country Country { get; set; }
    string _info;
    public void Instruct(string info)
        => _info = info;
}

public enum Country
{
    TR,
    UK,
    FR,
    GE
}

Şimdi bu model üzerinden tek bir ‘Person’ test datası oluşturmak istiyorsak aşağıdaki gibi çalışılması yeterli olacaktır.

using GenFu;

var person = A.New<Person>();

GenFu Kütüphanesi İle Test/Dummy Data OluşturmakGörüldüğü üzere tüm property’leri verilerle dolu olan hazır bir test datası oluşturmuş olduk. İşte bu kadar basit 🙂

Tabi bizlere tek bir test verisi yetmeyebilir. Haliyle bir listeye ihtiyacımız olursa eğer;

using GenFu;

var person = A.ListOf<Person>();

şeklinde çalışabiliriz. Böylece aşağıdaki gibi hali hazırda onlarca test verisi elde etmiş olacağız.
GenFu Kütüphanesi İle Test/Dummy Data Oluşturmak
Bunun dışında belirli conditionlar tanımlayarak oluşturulacak dummy datanın sınırlarını belirleyebiliriz. Misal; 19 ile 25 yaş arasında person nesneleri oluşturmak istiyorsak aşağıdaki gibi çalışabiliriz:

using GenFu;

GenFu.GenFu.Configure<Person>()
    .Fill(p => p.Age)
    .WithinRange(19, 25);

var person = A.ListOf<Person>();

Ya da bir yandan 19-25 yaş aralığında olsun bir yandan da isimleri “Ahmet”, “Mehmet”, “Hilmi”, “Necati”, “Muiddin”, “Şuayip”, “Rıfkı” vs. olsun dersek aşağıdaki gibi çalışabiliriz:

using GenFu;

GenFu.GenFu.Configure<Person>()
    .Fill(p => p.Age)
    .WithinRange(19, 25)
    .Fill(p => p.Name)
    .WithRandom(new string[] { "Ahmet", "Mehmet", "Hilmi", "Necati", "Muiddin", "Şuayip", "Rıfkı" });

var person = A.ListOf<Person>();

Tüm bunların haricinde herhangi bir property’nin değeri direkt sabit bir değer olsun istersekte aşağıdaki gibi geliştirme yapabiliriz:

using GenFu;

GenFu.GenFu.Configure<Person>()
    .Fill(p => p.Surname, () => "Yıldız");

var person = A.ListOf<Person>();

Nihai olarak, günlük hayatta dummy data oluşturmanın maliyetini ortadan kaldırabilmek ve çok şişirilmeden bu ihtiyacı giderebilmek için GenFu kütüphanesi bizlere gayet pratik şekilde eşlik ederek işimizi kolaylaştırmaktadır diyebiliriz 😉

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.