مقدار دهی به پراپرتی های پرایویت شی برای تست

mohsen11 ماه قبل
ارسال شده در
mohsen

روش اول استفاده از Mock هست

      var mockAddress = new Mock<Address>();
mockAddress.SetupGet(p => p.Id).Returns(42);
    

منبع: c# - Testing properties with private setters

روش دوم استفاده از رفلکشن هست. این اکستنشن متد رو باید توی پروژه تست تعریف کنیم.

      public static class ObjectExtensions
{
    public static TObject SetProperty<TObject,TReturn>(this TObject obj, Expression<Func<TObject, TReturn>> propSelector, TReturn value)
        where TObject : class
    {
        var propertyInfo = (PropertyInfo)((MemberExpression)propSelector.Body).Member;
        propertyInfo.SetValue(obj, value);
        return obj;
    }
}
var address = new Address(...);
address.SetProperty(t => t.Id, 42);
    
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!