Pok*_*kus 33 .net c# serialization unit-testing .net-2.0
我正在使用C#2.0和Nunit Test.我有一些需要序列化的对象.这些对象非常复杂(在不同级别继承并包含许多对象,事件和委托).
如何创建单元测试以确保我的对象可以安全地序列化?
小智 47
这是一种通用方式:
public static Stream Serialize(object source)
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new MemoryStream();
formatter.Serialize(stream, source);
return stream;
}
public static T Deserialize<T>(Stream stream)
{
IFormatter formatter = new BinaryFormatter();
stream.Position = 0;
return (T)formatter.Deserialize(stream);
}
public static T Clone<T>(object source)
{
return Deserialize<T>(Serialize(source));
}
Run Code Online (Sandbox Code Playgroud)
Pat*_*ins 15
我在这里的一些单元测试中有这个:
MyComplexObject dto = new MyComplexObject();
MemoryStream mem = new MemoryStream();
BinaryFormatter b = new BinaryFormatter();
try
{
b.Serialize(mem, dto);
}
catch (Exception ex)
{
Assert.Fail(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
可能会帮助你...也许其他方法可以更好但是这个方法效果很好.
归档时间: |
|
查看次数: |
16005 次 |
最近记录: |