C# 如何在类级别的项目中执行NUnit测试?

C# 如何在类级别的项目中执行NUnit测试?,c#,nunit,C#,Nunit,我想对我项目的一个方法执行NUnit测试。这里,SerializeBinary()方法将对象转换为二进制流和 反序列化FromBinaryStream()方法再次将其转换为以前相同的对象格式。现在,我想在需要序列化FromBinary()方法任务后检查这两个对象是否相同。 我经历了从,但没有明确我的概念 我在下面附上我的代码部分 第一部分: public abstract class Streaming { private static int _streamingIDExponent

我想对我项目的一个方法执行NUnit测试。这里,SerializeBinary()方法将对象转换为二进制流和 反序列化FromBinaryStream()方法再次将其转换为以前相同的对象格式。现在,我想在需要序列化FromBinary()方法任务后检查这两个对象是否相同。 我经历了从,但没有明确我的概念

我在下面附上我的代码部分

第一部分:

public abstract class Streaming
{
    private static int _streamingIDExponent = 41;

    public const string MonthLookup = "ABCDEFGHIJK";
    public const string ExpiryStringFormat = "ddMMMyyyy";
    public const double DefaultTicksPerPoint = 3;
    private long _StreamingID;
    private int _minQty = DefaultMinimumQty;
    public virtual void SerializeBinary(BinaryStreamWriter binaryStreamWriter)
    {
        binaryStreamWriter.Write(_StreamingID);
        binaryStreamWriter.Write(_ex_StreamingID);
        binaryStreamWriter.Write(_minQty);
        binaryStreamWriter.Write(_extendedProperties.Count);
        foreach (KeyValuePair<StreamingPropertyName, StreamingProperty> dictionaryEntry in _extendedProperties)
        {
            dictionaryEntry.Value.SerializeBinary(binaryStreamWriter);
        }
    }

    public virtual bool DeserializeFromBinary(BinaryStreamReader binaryStreamReader, out string errorString)
    {
        errorString = string.Empty;
        try
        {
            _StreamingID = binaryStreamReader.ReadInt64();
            _exStreamingID = binaryStreamReader.ReadInt64();
            _minQty = binaryStreamReader.ReadInt32();    
        }
        catch (Exception oEx)
        {
            errorString = oEx.Message;
        }

        return string.IsNullOrEmpty(errorString);
    }
public class Asset : Streaming
{
    public override void SerializeBinary(BinaryStreamWriter binaryStreamWriter)
    {
        base.SerializeBinary(binaryStreamWriter);
    }

    public override bool DeserializeFromBinary(BinaryStreamReader binaryStreamReader, out string errorString)
    {
        if (!base.DeserializeFromBinary(binaryStreamReader, out errorString))
            return false;

        try
        {
            return true;
        }
        catch (Exception oEx)
        {
            errorString = oEx.Message;
            return false;
        }
    }
 public class BinaryStreamWriter : IDisposable
 {
    private BinaryWriter _binaryWriter;
    public BinaryStreamWriter(BinaryWriter binaryWriter)
    {
        _binaryWriter = binaryWriter;
    }

    public void Write(object value)
    {
        if (value is Boolean) Write((Boolean)value);
        else if (value is Byte) Write((Byte)value);
        else if (value is Byte?) Write((Byte?)value);
        else if (value is Byte[]) Write((Byte[])value);
        else throw new InvalidOperationException(value.GetType().ToString());
    }

    void IDisposable.Dispose()
    {
         (_binaryWriter as IDisposable).Dispose();
    }
 }
第三部分:

public abstract class Streaming
{
    private static int _streamingIDExponent = 41;

    public const string MonthLookup = "ABCDEFGHIJK";
    public const string ExpiryStringFormat = "ddMMMyyyy";
    public const double DefaultTicksPerPoint = 3;
    private long _StreamingID;
    private int _minQty = DefaultMinimumQty;
    public virtual void SerializeBinary(BinaryStreamWriter binaryStreamWriter)
    {
        binaryStreamWriter.Write(_StreamingID);
        binaryStreamWriter.Write(_ex_StreamingID);
        binaryStreamWriter.Write(_minQty);
        binaryStreamWriter.Write(_extendedProperties.Count);
        foreach (KeyValuePair<StreamingPropertyName, StreamingProperty> dictionaryEntry in _extendedProperties)
        {
            dictionaryEntry.Value.SerializeBinary(binaryStreamWriter);
        }
    }

    public virtual bool DeserializeFromBinary(BinaryStreamReader binaryStreamReader, out string errorString)
    {
        errorString = string.Empty;
        try
        {
            _StreamingID = binaryStreamReader.ReadInt64();
            _exStreamingID = binaryStreamReader.ReadInt64();
            _minQty = binaryStreamReader.ReadInt32();    
        }
        catch (Exception oEx)
        {
            errorString = oEx.Message;
        }

        return string.IsNullOrEmpty(errorString);
    }
public class Asset : Streaming
{
    public override void SerializeBinary(BinaryStreamWriter binaryStreamWriter)
    {
        base.SerializeBinary(binaryStreamWriter);
    }

    public override bool DeserializeFromBinary(BinaryStreamReader binaryStreamReader, out string errorString)
    {
        if (!base.DeserializeFromBinary(binaryStreamReader, out errorString))
            return false;

        try
        {
            return true;
        }
        catch (Exception oEx)
        {
            errorString = oEx.Message;
            return false;
        }
    }
 public class BinaryStreamWriter : IDisposable
 {
    private BinaryWriter _binaryWriter;
    public BinaryStreamWriter(BinaryWriter binaryWriter)
    {
        _binaryWriter = binaryWriter;
    }

    public void Write(object value)
    {
        if (value is Boolean) Write((Boolean)value);
        else if (value is Byte) Write((Byte)value);
        else if (value is Byte?) Write((Byte?)value);
        else if (value is Byte[]) Write((Byte[])value);
        else throw new InvalidOperationException(value.GetType().ToString());
    }

    void IDisposable.Dispose()
    {
         (_binaryWriter as IDisposable).Dispose();
    }
 }

请相应地建议我。

问题不清楚。您要问的测试在哪里?@Charlie在这里,我在第一部分有SerializeBinary()和DeserializeFromBinary()方法。我还没有编写测试类来测试它,但我的目标如下:在第一部分中,SerializeBinary()方法将给出传递对象的二进制流格式,而DeserializeFromBinary()方法将给出前一个相同的对象,该对象通过SerializeBinary()方法转换为二进制流。然后我想比较两种类型是否相同。这里是基类流。希望现在可以理解。在我的课堂和辅导中,我一直强调最好分别测试序列化和反序列化。如果您一起测试它们,那么它们可能会一起工作,因为它们都有错误,这些错误会相互抵消。当然,如果这些都是私有方法,并且序列化的结果不打算被任何其他应用程序使用,那么就可以了。但通常情况并非如此,问题并不清楚。您要问的测试在哪里?@Charlie在这里,我在第一部分有SerializeBinary()和DeserializeFromBinary()方法。我还没有编写测试类来测试它,但我的目标如下:在第一部分中,SerializeBinary()方法将给出传递对象的二进制流格式,而DeserializeFromBinary()方法将给出前一个相同的对象,该对象通过SerializeBinary()方法转换为二进制流。然后我想比较两种类型是否相同。这里是基类流。希望现在可以理解。在我的课堂和辅导中,我一直强调最好分别测试序列化和反序列化。如果您一起测试它们,那么它们可能会一起工作,因为它们都有错误,这些错误会相互抵消。当然,如果这些都是私有方法,并且序列化的结果不打算被任何其他应用程序使用,那么就可以了。但通常情况并非如此。