如何在c#中强制编辑readonly属性以进行单元测试

时间:2015-12-11 00:54:16

标签: c# properties

我班上有以下属性。

public bool IsUser
{
    get
    {
        return true; 
    }           
}

我正在尝试为这个编写单元测试,我必须将IsUser设为false。

我试图避免原始属性的更改。是否可以在单元测试中进行更改。

1 个答案:

答案 0 :(得分:0)

您发布的代码根本不支持任何分配操作 因为你实际上没有存储任何信息,你只需返回逻辑常量。为了支持赋值操作,你必须明确地使用一些类字段,因为我在隐式的第一个例子中发布了 - 在第二个。

您可以使DEVICE="eth1" BOOTPROTO="dhcp" ONBOOT="yes" TYPE="Ethernet" USERCTL="yes" PEERDNS="yes" IPV6INIT="no" PERSISTENT_DHCLIENT="1" 属性受保护,而不是从您要测试的类中测试程序集中使用公共set属性setter派生测试类或模拟类。

IsUser

或只是

public bool IsUser 
{    
     protected set
     {
           _someMemberVariable = value;
     }
     get 
     { 
           return _someMemberVariable; 
     }           
}

此代码段显示可以从任何类读取的属性,但只能从自身或派生类型中分配。

在这种情况下,

public bool IsUser { protected set; get; } 必须是私有类字段。

相关问题