虚拟属性的单元测试

本文关键字:单元测试 属性 虚拟 | 更新日期: 2023-09-27 18:18:19

由于NHibernate中的延迟加载,我必须确保我的域的每个属性都是虚拟的。我想通过编写一个单元测试来检查每个反射,以确保特定命名空间中所有类的所有公共属性都是虚拟的。

我该怎么做?

提前感谢Tobi

虚拟属性的单元测试

不需要,只需要构建会话工厂。如果属性不是虚拟的,配置将抛出一个详细的消息,告诉您哪里出错了。

我从一个类似的案例中改编了一段代码,这应该能让你继续;

    public static bool Test<T>()
    {
        var valid = true;
        foreach (var property in typeof(T).GetProperties())
        {
            var accessor = property.GetAccessors()[0];
            if (accessor.IsVirtual)
                continue;
            Console.WriteLine("Member " + typeof(T).Name + "." + property.Name + " is not virtual");
            valid = false;
        }
        return valid;
    }

你可以这样使用:

var valid = Test<User>();