FakeItEasy ile Mocking işlemleri

14 Kas

FakeItEasy açık kaynak kodlu bir .Net mocking Framework’dür Bu framework sayesinde istediğimiz tipe ait dinamik fake nesneler oluşturabiliriz. Kolay anlaşılır ve uygulanabilir bir altyapıya sahiptir. Kullanımı ise basit bir şekilde şöyledir:


IMemberService service = A.Fake<IMemberService>();

A.CallTo(()=>service.IsValid("validUser")).Returns(true);
A.CallTo(()=>service.IsValid("invalidUser")).Returns(false);

MemberController controller = new MemberController(service);
bool isValid = controller.ValidateUser("validUser");

Yukarıda IMemberService türünden türetilmiş somut bir fake sınıf yazmamıza gerek kalmadı. Çünkü bu işlemi bizim yerimize FakeItEasy gerçekleştirdi. A.Fake<IMemberService>() şeklinde yeni bir somut nesne oluşturdu. Yine service nesnesinin metotlarına ait davranışları da biz veriyoruz. IsValid() metoduna hangi parametre ile çağrıldığında nasıl davranacağını A.CallTo() metodu ile bildiriyoruz. Artık MemberController sınıfı dışarıdan almaya ihtiyaç duyduğu IMemberService hazır.

FakeItEasy aracı Test Driven Development geliştirme için çok kullanışlı bir üründür. Eğer önceden aşina olduğunuz bir mocking framework yoksa kullanmaya değecek bir üründür.