C# 在使用特定代码的Moq进行单元测试时需要帮助吗

C# 在使用特定代码的Moq进行单元测试时需要帮助吗,c#,testing,moq,uint,C#,Testing,Moq,Uint,我已经创建了DataColumn类。现在我想使用Moq进行单元测试。我应该如何为此编写代码 [Serializable] public class DataColumn<T> : IDataColumn { private string columnName = null; private T defaultValue; public DataColumn(string columnName) : this(columnName, default

我已经创建了DataColumn类。现在我想使用Moq进行单元测试。我应该如何为此编写代码

 [Serializable]
 public class DataColumn<T> : IDataColumn
 {

    private string columnName = null;

    private T defaultValue;

     public DataColumn(string columnName) : this(columnName, default(T))
     {
     }


    public DataColumn(string columnName, T defaultValue)
    {
        ColumnName = columnName;
        DefaultValue = defaultValue;
     }


    public T DefaultValue
    {
        get
        {
            return defaultValue;
        }

        set
        {
            defaultValue = value;
        }
    }

    public bool IsDefaultValueDefined()
    {
        return ReferenceEquals(defaultValue, default(T));
    }

    public string ColumnName
    {
        get
        {
            return columnName;
        }

        set
        {
            this.columnName = value;
        }
    }

    public Type DataType
    {
        get
        {
            return typeof(T);
        }
    }

    public override string ToString()
     {
         return ColumnName + "[" + DataType.Name + "]" + (IsDefaultValueDefined() ? " (" + DefaultValue + ")" : " ");
     }
[可序列化]
公共类数据列:IDataColumn
{
私有字符串columnName=null;
私人T值;
PublicDataColumn(字符串columnName):此(columnName,默认值(T))
{
}
公共数据列(字符串columnName,T defaultValue)
{
ColumnName=ColumnName;
DefaultValue=DefaultValue;
}
公共T默认值
{
得到
{
返回默认值;
}
设置
{
默认值=值;
}
}
公共布尔值IsDefaultValueDefined()
{
返回ReferenceEquals(defaultValue,default(T));
}
公共字符串列名
{
得到
{
返回列名称;
}
设置
{
this.columnName=值;
}
}
公共类型数据类型
{
得到
{
返回类型(T);
}
}
公共重写字符串ToString()
{
返回ColumnName+“[”+数据类型.Name+“]”+(IsDefaultValueDefined()?“(“+DefaultValue+”):”);
}

如何为这段代码创建单元测试?

不确定为什么需要Moq来测试这段代码,是否尝试Moq这个类来测试另一个类

Mock<IDataColumn<T>> dc = new Mock<IDataColumn<T>>();
dc.Setup(s=>s.IsDefaultValueDefined).Returns(true);
someOtherObject.SomeMethod(dc.object);
dc.verfiy(s=>s.IsDefaultValueDefined, Times.Once());
Mock dc=new Mock();
Setup(s=>s.IsDefaultValueDefined)。返回(true);
someOtherObject.SomeMethod(dc.object);
dc.verfiy(s=>s.IsDefaultValueDefined,Times.Once());

我想使用moq创建单元测试来测试另一个类。我正在为表格数据库创建类库上面的代码模拟了IDataColumn IsDefaultValueDefined,这样每次调用它时它都会返回true。最后一行将验证它实际上被调用过一次。希望这个示例帮助程序是一些实现c如果T是接口的,您甚至可以模拟它,但通常任何存根都可以作为您的测试,而不是实际测试T